$4, 06)L
OM ISSUG 1
Voline 2) Nuigpe
| } A
“aa
aA4
Ces
SOFTWARE SUPPORT
INTERNATIONAL
We Carry America’s Largest Selection of C-64/C-128 Software!
10 Game Grab B:
Arkanol
Beyond Dark Castle
Beyond Zork 128
Defender of the Crown
Double Dragon 2
Heavy Metal
Heros of the Lance
Keys to Maramon
Mean Streets
Monopoly
Ms Pacman
Ogre
Geos 64 v2 $39.97 Swiftcalc w/Sideways
POK & FLIG % Y
4th & Inches
Champshp Baseball
Champn Basketball
$7.97
$12.97
$9.97
$9.97
$12.97
$14.97
$9.97
$9.97
$12.97
$9.97
$9.97
Dave Winfield Batter Up $9.97
Fast Break
Hardball
Jack Nicklaus Golf
Jordan vs Bird
Leaderboard Golf
Pro Football Facts
Pro Soccer
Pure Stat Baseball
Sporting News Baseba
Star Rank Boxing
C-128 RGB Cable
Computer Hand 2
Convert A Com
Disk Bank 10/3.5"
Disk Bank 10/5.25"
Disk Bank 100/3.5"
Disk Bank 100/5.25"
Disk Bank 70/5.25"
Disk Mailers
Drive Cleaners
Serial Cable 6ft
Serial Cable 10 ft
Drive Power Cable
User Port Cable
Com Modem Adapter
ll $9.97
$15.95
VN MEN PRODUCTIVITY
Pacman $9.97 1750SuperClone $99.95 Geos 128 v2 $44.97
Plundered Hearts $12.97 Basic Compiler 64 $12.97 Graphic Label Wizard $14,97
Pool of Radiance 14.97 Big Blue Reader $29.97 Graphics Basic
Portal $14.97 BAW Prog Tools $14.97 Home Designer 128
Questron 2 $9.97 BIW Power C $9.97 Manager, The
Rampage $7.97 BWTurbo Cartridge $17.97 Maverick v5
Realms of Darkness $12.97 C128 Graphics Bundle $29.97 Model Diet
Roadwars $7.97 Christmas Model Kit. $9.97 Newsroom
Sidearms $7.97 CSM Protection Man 1 $14.97 On Line Help
Steel Thunder $9.97 CSM Protection Man 2 $19.97 Outrageous Pages
Strip Poker $14.97 Data Manager 2 $14.97 Postcards
Trump Castle Casino $12.97 _Designer’s Pencil $9.97 Printmaster Plus
Wheel Fortune 1-2-3 $9.97 Drive Align 1541/71 $12.97 Superbase 64
Easy Working Tri Pak $9.97 Superscript 64/128
Tony LaRussa Baseball $7.97 EDUCATIONAL
Tournament Tennis $7.97
WWF Wrestling $7.97 Early Leaming Friends $9.97 Spellicopter $9.97
Acrojet $9.97 European Nations & Loc $9.97 Stickybear Math $9.97
Apache Strike $7.97 Keys to Typing $9.97 | Stickybear Numbers $9.97
Blue Angels $7.97 Memory Manor Cart $9.97 |_ Typing Tutor 4 $9.97
F-14 Tomcat $9.97 Magic Spells $9.97 | Word Attack $9.97
F-19 Stealth Fighter $12.97 Snoopy Sky Scramble $9.97 Word Spinner $9.97
Flight Sim Games $4.97
High Roller $7.97
Jet Combat Sim $7.97 EFI ED HARDWARE
Skyfox $7.97
Super Huey | $797 G64 Keyboard w/ PS $79.95 1541 Clone Drive $39.95
Top Gunner $9.97 6-128 Keyboard w/PS $139.95 40 Col Monitor $99.95
€-128D Computer $174.95 80 Col Monitor «$139.95
C c 1841 Disk Drive $64.95 Printers/Call for Make $39.95
SORIES 1571 Disk Drive $129.95 Misc. CALL
Floppy Disk Notcher $6.95
Dust Covers - specify $7.95 Items Listed Above Do Not Include Shipping. U.S 48 States - Add $5.50
Ergostick Joystick $16.95 per order. Alaska, Hawaii & Canada - add $5.50 for the first piece and
CBM 1200 Baud $9.95 $1.00 per cach additional piece per shipment. Second Day Air shipping
Aprotek 2400 Baud $49.95 is available, Call for shipping charges. Call Or Write For Your Free c=
1351 Smart Mouse $44.95 Ca 2 Listing HUNDREDS Of Commodore Products And
MW 350 Interface $44.95 Special Offers For Your Computer. Our Order Takers Are On Duty 6:00
64 Power Supplies $34.95 am. - $:00 p.m. M-F and 7:00 am. - 3:00 pm. Sat. - Pacific Time
128 Power Supplies $49.95
Printer Ribbons CALL
Userport Expander $24.95 Software Support Int.
Video Ram Upgrade $49.95 SOFTWARE 2700 N.E. Andresen Rd.
3.5" 10 cnt.Floppy ‘$7.95 Suite D-4
a SUppant Vancouver, Wa 98661
(360) 695-1393
1-800-356-1179
Major CreditCards Accepted.
C QO N
ISSUE 11 .
VOLUME 2 . NUMBER 6 . NOV/DEC 1995
Features
14 A Simpte Guive to Disk Drives by Maurice Randall
A bit of history about the Commodore 1541 and a look at its use today.
18 Cormopore Drives are History by Jim Brain
A guided tour through the Commodore Drive museum.
22 Seriat Bus Kernat ROUTINES by Doug Corton
Learn to access serial bus devices in machine language.
COMMODORG
GeNeRAL MaNacer
Charles R. Christianson
A
Epitor
Doug Cotton
°
Assistant Epitog
Jenifer Esile
So
Reviews
32. FontiGus by Gaelyne R. Moranec
Editing character sets is made simple.
33° Turbo ASSEMBLER by Jim Brain
Review of an assembly program for the 64.
Apverrisine Sates
Charles A. Christianson
(413) 525-0023
¢
ProtoGrapHy
Wayne Wrubel
é as he Cocumns
Dog Catton 10 Just For Starters by Steve Vander Ark
Jenifer Esile Printer selection and simple BASIC programming.
ee 13 Foreicn EXcHANGE by Joseph Gaudl
What can GoDot really do?
Evectronic Pré-Press & Paintin 36 GRAPHIC INTERPRETATION by Steve Vander Ark
Mansir/Holden Steve continues his series on GEOBASIC.
bd 38 Carrer DETECT by Gaelyne R. Moranec
Cover Design by Jenifer Esile Tips on navigating your way through the web.
42 Over THe Ene by Don Radler
‘Sonora © ai ia Iuarva COMNGIDUOIG INGIUEI Raaaes What are the consequences of Virtual Reality technology?
are trademarks or registered trademarks of Escom GmbH 3
Commodore World isn no way allated wih Escom GmbH, 44 Hago Ties by Doug Cotton
‘owner of the Commodore logo and technology. Commodore Hardware device number changes.
Maurice Randall
World is published 8 times annually by Creative Micro Designs, 46 GeoProcranist &
Some common routines, the Sway.
Inc,, 15 Benton Drive, East Longmeadow MA 01028-0646.
Socond-Class Postage Paid at East Longmoadow MA, Annual
subscription rate is US$29.95 for U.S, addresses, US$35.95.
for Canada or Mexico, USS45.95 for all EC Counties, and 48 Basic INSTINCTS by Gene Bark
US$57,95 to all other addresses worldwide. All subscription An example of using ML subroutines in BASIC,
payments must be provided in U.S, Dollars. Mail subscriptions
to CW Subscriptions, c/o Creative Micro Designs, Inc., P.O. 50 PERIPHERAL VISION by Jim Butterfield
Box 646, East Longmeadow MA 01028-0646.
Entire contents copyright © 1995 by Creative Micro
Designs, Inc., unl herwise noted. No part of this
publication may be printed or otherwise reproduced by any
means without prior written consent from the publisher. All
programs provided in this publication ara for the prsonal use
of the reader, and may not be copied or in any way distributed,
Allrights reserved. Programming examples and routines inthis
52
Null characters and how to manage them.
Assematy LINE by Jim Butterfield
Using processor registers and debugging tips.
issue which aro presented for educational purposes may bo
Usod in the creation of programs bythe purchasorotthisotths | LJIEGPARTMENTS
‘magazine, provided credit for the routines is clearly presontod
in cithor the program documentation, or the program itselt. 2 From tHe Eoiror & On Tie Horizon
Grealive Micro Designs, Inc,, assumes no responsibilty for 4 Bacau BS: CussreoiAny See Our
orrors or omissions in editorial, program listings or advertising ‘
content. Creative Micto Designs, Inc. assumos no liability for 6 Commopore Trivia 56 Apverniser’s Inoex CHK-LIST
advertisers claims or reliability
POSTMASTER: Send address changes to: CW Addross
‘Changes, c/o Creative Micto Designs, Inc,, P.O. Box 646, East
Longmoadow MA 01028-0646,
Utility
On Page 54
CMD/CW MARKET SURVEY
‘ditor column
We'v
in this i
kipped our usual From The
that they help companies like ours to better serve
you, our customers.
sue to bring you something we feel is far
more important—a survey. Yes, | know, Most of
us hate filling out surveys, but there's no doubt
Of course, this also means you're helping us
stay in business, and that has value. Soas
for your as
abonus
stance, we'll issue a $5.00 credit
towardsa future purchase from CMD toeveryone
who returnsa completed, legible response to this,
survey.
Please send you completed survey to:
CMD/CW Market Survey
Creative Micro Designs, Inc.
P.O, Box 646
East Longmeadow, MA 01028-0646
Demographic Information
Your CW subscription number;
2, Youra
ge;
16.
How many more years do you think the
Commodore will meet your needs?
. Most computer users outside of this market
consider the Commodore obsolete, Why do you
feel differently?
4. Number of years of education:
4. Annual Income (optiona
5, Number of Children:
6. Children’s Ages
General Questions
For how many years hav
computer?
8. What types of computers have you owned?
A. C64 B.C-128 C, MS-DOS
D. Macintosh —E, Amiga
F, Other (specify)
18.
19,
(a) If you were to buy another computer at this
tim computer platform would you
consider most seriously?
A.MS-DOS —_B. Macintosh
D, Other (specify)
(b) Why? a
C. Amiga
Telecommunications
24, (a) Do you currently use your Commodore for
telecommunications?
(b) Ifso, what services do you use and/or
subscribe to?
A.Internet B.GEnie C, CompuServe
D. Delphi E. BBS's
F. Other (specify)
(c) What terminal program do you use?
(@® What brand and speed modem do you
have?
. What additional telecommunications
capabilities would you like to see available to
Commodore users?
Assuming that you were making a decision
whether or not to change platforms today, what
additional features or new periphe
keep you from changing?
9. Which computers do you still use?
A, C64 B.C128 CN
D. Macintosh E, Amiga
F, Other (spe
y)
10. How many hours per week do you use each of
the above listed computers?
11, What are the two most frequent uses for each of
the computers listed above? (i.e, games,
productivity, telecom., desktop publishing.,
etc).
12. How long have you owned your Commodore
computer(s)?
13, How satisfied are you with your Commodore's
ability to perform the tasks you want to use
your computer for? (Use a number from 1 to 10
with 10 being most satisfied.)
14, What features or characteristics do you most
like about your Commodore?
20.
22.
23.
y that existing manufacturers are
producing computers that best meet the needs
of the average home user?
What features do you feel are most important
for an entry level computer and can you name
an existing computer that offers them at a
ple price?
(a) Would you be interested in anew CMD.
computer if it had compatibility with existing
Commodore software or hardware?.
(b) What features would you deem to be mo:
important and what specific compatibility level
would you consider satisfactory?
Commodore World
‘e you satisfied with the quality and
content of this magazine?
. Do you feel as though you gain knowledge from
each issue?
. Is there (a) too much, (b) not enough, or (c)
enough coverage of CMD products?
29, What would you like to see more of?
|. What would you like to see less of?
31. How would you rate the artistic quality of
Commodore World? (Use a number from 1 to
10, with 10 being best.)
32. How would you rate the editing quality of
Commodore World? (Use a number from 1 to
10, with 10 being best.)
33. Please also forward any additional comments
that you feel will help us produce a better
product or publication.
15, What features or characteristics do you least
like about your Commodore?
COMMODORE WORLD
(© How much would you be willing to spend on
such a computer, without a monitor?
(d) Would you still be interested if it required
you to purchase an SVGA monitor (approx,
$200 to $300)?
Issue 11
LOADSTAR SOFTWARE VALUES!
The Compleat* Series
The Compleat PRINT SHOP I: (tho print Shop by Broderbund or
Printmaster required). Over 1300 artistic and never before published PRINT SHOP images.
Tho smart, fast software package included allows you to
quickly scan through the many PRINT SHOP images
sequentially, by name, or by group number, Press a key and
‘save the graphic you want in 2-block, 3-block and even
PRINTMASTER grap les! Al tat plus a pint gud to
your new sea of graphic files. And if you like the first
you'll probably want to get your hands on The
pleat PRINT SHOP II, which also contains over 1300,
PRINT SHOP images, previously published on LOADSTAR
Issues over tho past ton yoars. Included is the same smart
fast software package included in The Compleat PRINT KssslShiiiiet tists
SHOP 1, Each volume is $20.00,
The Compleat Programmer: secome tne Commodore programmer
you'vo always wanted to bo! Mogabytes of knowledge crammed and stutled onto eight 5.25-
Inch disks of two 1581 disks! Plus wa include all the fools, extensions, languages, assambiers
tutorials and utilities you'll need to create the same type of software you see on LOADSTARI
‘This massive collection is way over two iegenyine Of instructional text and valuable tools.
$20.00. For $5 more, got C= Hacking MAG, not available separately, to complete your
programming set
The Compleat Maurice: a compiiation of 26 solitaire card games written by
Maurice Jones, the acknowlodgod mastar of card gama simulations for tho C-64/128, Thoro's
even a brand new, never before published game called Boomerang. Two 5.25 inch disks or
‘one 3.6 Inch disk, $20,00 postage paid!
The Compleat Dave: two 1581 disks or three 1541 disks crammed with SID
‘music. Ovor 250°classic molodies trom yosteryear, arranged and transcribed by tho Mastor of
‘Music, Dave Marquis, and now they're availablé in one gigantic 8-hour collection. If you enjoy
SID music, you owe it to yaurselt fo gat THE COMPLEAT DAVE. Two 1581 disks or three
1541 disks $20.00 postage paid!
The Compleat Walt: ton years of walt Harnod's
sideshows and mutmedia events ganared ino one huge colecton
Seven 5.25-inch disks or three 3.5 inch disks! Over 250 pictures,
ineluding some that have nover been published. The greatest ong:
man collection of art on any computer plattorm! $20.00 postage paid!
The Compleat Roger: 25 educational quiz programs,
each carefully cratted by Rage? Norton, an educator wha uses C-645. These programs come
crammed on two 5.25-inch 1541 disks or one 1581 disk. $20.00 postage paid!
* No, we didn’t misspell “complete.” Compleat is the ten dollar spelling of complete.
Other Products
Geopower Tools - 19 Geos utiities: Calendar Printer, Fast Format, Geo Fetch (grab
any portion of a screan as a Photo Scrap), Phoonix (resurrect a trashcanned file), Programmer's
Calculator are just. a tow of tho handy tools: Sido Two i lod wth Clip Art (in Photo Album format)
and fonts. $9 95 (C-64/128) Item #OGOS25,
Songsmith - coaostar's own music-making program. With this deluxe music
editor/player you can easily transcribe music from sheet music of make up your awn tunes.
‘Songsmith comes with a slick 30-page manual and a jukebox player with eight tunes, $9.95
Game Star #1 ign gamos trom LOADSTAR #70-#100), The Tonomont, Stack Em, The
‘Sherwood Open, Goms, Stoa'th Bomber, Eagle Eyes, Moonraker & Circuitry, $9.95
Just For Fun cignt original gamos. there are arcade games, educational games,
puzzle games and just games that are just plain tun on this disk. $9.95
Fun Four - Four origina! games. A huge maze gamo, trivia gamo, solitaire and a space
shoot ‘em up ~ all runnable trom a menu. $9.95
Sport -in tho early days of scionce, “sport” moant ‘mutant,” This is a full novel on C-64 disk
by author, Jett Jones, about a murdorous neo-human, Over $00 terrifying pages. Automatic
resentation softwara included, Printing capabilly, Bookmarks. Warning This is
FOR): roa! novel with strong contont, frank languago, violence and adult situations, I
the hare iting acon of roa sci:vhrror novls tums your stomach, lange
don't buy this book, Must bo 18.1 CMD HO disk , 2 3.5:inch disks or 3-8:26:inch disks, $5.95
$1.00 Shipping
Brainpower/Brainstorm - é0-column word processor and idea processor for the
C-128. These two programs are together on one disk. It comes with a detailed 32-page manual,
$9.95 (C-128 only) Item #069421
Best Of Loadstar Compilations: Loaostan is over 11 years young! We
have § anthology disks that take you through the evolution of LOADSTAR, from humble
beginnings to the woll-oiled machine wo've become. i you want to hop on a time machine and go
back. start with The Best Of LOADSTAR #5 and move your way back to The Best Of
LOADSTAR #1. Each of the 136 back issues are available for purchase with discounts on largo
‘dors for you colectors out there. Best Of LOADSTAR cisks are available on 5 25uinch disks only
C64 ack. $9.95.
Master Base - patabase of users’ groups for the 80-column C-128. This is a fast,
powerful database program for handling addresses and mailing labels (includes barcode printing)
‘The disk also has a file of over 600 users’ groups addresses. $4.95 (C-128 only)
LOADSTAR is a monthly “magazine on disk" for the Commodore 64/128. Subscribers receive two 1541 disks (or one 1581 disk) in their mailbox every
month filled with news, articles and programs. These non-PD, high-quality programs are written by the best home-based programmers in the field and edited by
the crack LOADSTAR team of Fender Tucker and Jeff Jones. Subscription prices are at an all-time low of $69.95 for a 12-month subscription, or $19.95 for a
three-month subscription. You may also elect to subscribe “by the month,” where we charge your credit card $7.95 for each issue after it's shipped.
Loadstar Products Order form 1-800-594-3370
Quantity Description
| 3-month LOADSTAR subscription $19.95 na
1-year subscription to LOADSTAR $69.95 na
_Month to month @$7,95 $7.95/mo n
$20.00 0009D5
$20.00 0001D3
inch $20.00
inch $20.00
-inch $20.00
$20.00
$5.00
$20.00
20.00
$20.00
$20.00
$20.00
$20.00
$20.00
$20.00
$9.95
$9.95
$9.95
0002D3
000SDS
000SD3
0006D3.
0007D5
0007D3_
070525
070523
070425
070423 ___
0004D5S.
0004D3
Compleat Programmer on 5
Compleat Programmer on 3.5-inch
Compleat Walt 5.
Compleat Walt 3.
Compleat Roger
| Compleat Roger 3.5-inch
Geopower Tools
070323
Sport 3.5-inch
Hie 070327
Sport CMD High Density
TOTAL FROM THIS COLUMN
Volume 2, Number 6
Price Item# Total Qty Descript Price
0010D5__ =
Item# Total
$9.95
$9.95,
$9.95
$9.95
$9.95
$9.95
Songsmith
Best Of LOADSTAR #5
S 049525)
Best Of LOADSTAR #4
049425)
Best Of LOADSTAR #2
Best Of LOADSTAR #1
énclosed: |
Total
3 COMMODORE WORLD
GACKTALK
LETTERS AND QUESTIONS FROM OUR READERS
Dear CW,
Does anyone out there know a way to back up
Cosmi Swift Sheet 128? Or does anyone know of
a pretty good 80 column spreadsheet that’s
available somewhere for the 128? Ihave Maverick
with all of the modules, and it does copy the
program, but the copy will not boot up.
Thanks
TJ. Moyles
Tobe honest, no-one hereknew theanswer, as noneof
us have that particular program. But we've obviously
gota few thousand readers, one of whom may know.
So if anyone has the answer to this question, drop us
aaline, and we'll eprint it for everyone to see.
Dear Commodore World Magazine,
I read in Issue 9 of CW that geoFax is now
available. Is therea bed or page scanner available
for the Commodore 128 so that I can scan images
and then fax them? Can | use the HandyScanner
and the Pagefox to scan images into GEOS? How
can I get them? Will geoFax automatically slow
down the baud rate if the remote fax machine is
going at the slower rate of 9600 baud instead of
14.4 K baud? What happens if someone is on the
telephone when receiving a fax, will the fax get
lost or can that someone just hang up the phone?
And, what happens if the computer is off when
receiving a fax, will the fax get lost or can you just
cut on the computer?
Sincerely,
Jefirey L. McLean
There aren't any page or flathed scanners supported
on the Commodore just yet, but geoFAX itself can
sean images using many of the modern fax machine
available today. Thisis done by getting a fax machine
that supports direct connection to a fax-modem
(without hooking either into your telephone jack).
The Handyscanner 64 can indeed be used to scan
images for placement into GEOS applications, It
currently comes supplied with a utility program to
convert Handyscanner files into geoPaint documents,
Handyscanner and Pagefox are both available in the
US from CMD.
Fax machines and fax-modems automatically
connect with each other at whatever speed the calling
COMMODORE WORLD
machine is set for, So if someone calls you with a fax
machineset at2400 baud, your 14.4K bps fax-modem
will step down to 2400 baud to match the incoming
signal.
Ifsomeone tries to send you a fax while your phone
line isin use, they Il get a busy signal, Likewise, ifyour
computer is off, the modem won't respond correctly to
the caller. So they'll just have to try again later.
itor,
My first issue of Commodore World, August/
September 1995 has the type-in programs for
which I wanted.
But when | typed in the CHK-LIST and ran it I
was rewarded with Working....(4 lines) and
“2ILLEGAL QUANTITY ERROR IN 32”,
I very carefully checked every line, including
thedatastatements, where founda fewboo-boos,
several times and not only checked, but re-typed
the lines 10-60 three times, but I only got the
same message, above. What am I doing wrong?
Dear
Respectfully,
Roland Lowery
The problem almost has to bein the data statements.
Run the program in 64 mode (if you're using a 128),
and when the error occurs, type the following:
PRINTM,D
You'll see tvo numbers on the screen,
e first isan
where data was to be placed, and the second
is the data itself. The first number should roughly
coincide with the line numbers in the program (in
most cases it will fall somewhere between the values
used for two of the line numbers). Now look at the line
numbers in that area of the program to see if you can
addres
Jind a data element that matches the second number
on your screen. Once you find it, compare it to the
lising in the magazine, and make the necessary
corrections to your program.
Dear Doug,
As an eight-year GEOS user and Commodore's
resident PostScript guru, I have marveled at the
expertiseexercised in the pages of Commodore World.
However, there are times when great articles have
left out information that leaves me quite puzzled.
4
Sherry Freedline’s article, “Spreadsheets by
the Numbers,” sang the praises of geoCale, only
to end that section by saying, “If only geoCale
could create graphs as well.” | always thought
that geoChart was supposed to create graphs,
Sherry does not mention if it is fair to expect
GEOS users to buy this application tosupplement
Cale. Nor does she say if it functions well
when used for that purpose. She simply fails to
mention it at all!
Anarticle by Steve Vander Ark gives us “Some
Tips on Using GEOPUBLISH.” He states, “You
sin the
get a taste of the potential that still exis
Commodore computer when youseea document
slide out of a laser printer...” I can verify his
euphoria here because I have been using a laser
printer with geoPublish for nearly five years.
‘Therefore | was surprised to later read that
“resizing [bimapped graphic images] is pretty
much outofthe question.” Tothe contrary, GOES
users who have access toa PostScript compatible
laser printerat homeorat KINKO'S, for example,
should try to find the biggest bitmap possible for
nearly all their geoPublish graphics.
PostScript offers GEOS users the unparalleled
ability to increase the resolution of Commodore
graphics, normally 80 x 72 dots per inch. By
pasting a 4" x 4" size geoPaint image in a2" x 2"
space within a geoPublish document, you can
double the active resolution of the image to 160.x
144 dots per inch. It beats the jaggies!
Steve warns us that using “oversized images”
caneat upa lot of
the laser printerhasgottena"bad rap” forprinting,
graphics that look “blocky.” [suggest that anyone
whoseriously thinks thismay bea problem should
subscribe to the laser printed Double-Click, a
user newsletter of the East Lansing Commodore
Club produced by Maurice Randall.
We need to keep in mind that, for those who
want to use these larger images, geoPublish will
allow us to downsize any image without penalty
on a PostScript laser printer.
Sincerely,
K. Dale Sidebottom
Thanks, Dale. Your comments are both welcome and
appreciated. And you're certainly invited to submit
detailed articles on your favorite subject to us.
Issue 11
PERFECT TAX’
Get PERFECT TAX™ now and
relax on April 15th...
¢ THIRTEENTH SUCCESSFUL YEAR! * MANY THOUSANDS ALREADY IN USE!
¢ Your Simple Answer to the TAX Reform Acts of 1986 through 1994
Stores data files on disk for quick recall
Yearly upgrades available to registered users
Fully screen-prompted, menu-driven and easy-to-use
Includes helpful tutorial example and forms library
Built-in calculator accumulates input and enters totals
Instant recalculation of your entire return when you
change any item with just a single keystroke
Prints directly onto IRS forms and Schedules or to
blank computer paper for use with transparent overlays
PERFECT TAX is Tax Deductible
Supports all of these FORMS and Schedules:
FORMS: 1040, 1040A, 2441, 3903, 6251, 8615 and 8815
Schedules: A, B, C, D, E, SE, 1, 2, 3 and EIC-A
TAXPERFECT 128 additionally supports:
FORMS 2106, 2119, 2210, 3800, 4136, 4256, 4562, 4684, 4952
and 8396, plus Schedules EIC, F and R
¢ PERFECT TAX is the quick, correct, easy
way to do your taxes * Absolutely up-to-date
with the Tax Reform Act of 1986/87/88/90/93 and
all_new tax changes * Simplest tax return
preparation program available - at any price « Single-
keystroke form-to-form change * Automatically
calculates and transfers data from every FORM and
Schedule to the FORM 1040 « Simply answer the
questions - PERFECT TAX calculates the return, tax due
or amount of refund due you * Automatically elects the
greater of Standard or Itemized deductions ¢ Prints data to
all FORMS or Schedules you need for your complete return
- ready to sign and file * Highly acclaimed by the tax pros,
CPA's and tax preparers, PERFECT TAX is easy to
understand and a pleasure to work with * Separate versions
available for Commodore 64 and Commodore 128 computers
PERFECT TAX 64 $69.00
PERFECT TAX 128 $79.00
(plus shipping—see our main ad)
‘Available from
Creative Micro Designs, Inc.
-800-638-3263
FOR THE BEST SELECTION OF
REFURBISHED COMMODORE EQUIPMENT
CALL 1-800-638-3263
JiffyDOS
COMPUTERS
C64 or C64c (refurbished) $89.00
re-installed on
Benin C128 (refurbished) 5149.00
disk drive! 128-D (refurbished) 5239.00
MONITORS
1702 (refurbished) 599.00
1802 (refurbished) 5429.00
i SPECIAL!
: 80-column monitors CALL 4544-Il Drive
30 DAY ——ODRIVES
= | WARRANTY = 1541 (refurbished) 575.00
TENCE oN all refurbished 4544-1] (refurbished) SPECIAL! $89.00
equipment
SPECIAL! $99.00
Prices donot include shipping charges, and are
subject to change without notice. All items
subject to availability, call before ordering
1571 (refurbished)
SPECIAL!
1571 Drive
Creative Micro Designs, Inc.
Volume 2, Number 6 5 COMMODORE WORLD
Welcome to another edition of Commodore
ia. As many of you may know, these trivia tr
questions and answers have been donated by me
to the Commodore community at large. Unlike
other articles in Commodore World, these tri
questions have been placed in the public dor
Task only that the trivia questions r
and unchanged, and that my name and address
me,
where the tr
Enjoy.
appear somewhere so users can contact me, The
oused fora contest runon the Internet;
contact me at the included address for more
information. Because curiosity has the best of
ways welcomea note or post
goes, I always welcome new
questions—provided they come with answers,
Jim Brain
Brain Innovations, Inc.
602 North Lemen
Fenton, Ml 48430
brain@ mail.msen.com
ddetailing
COMMODORE TRIVIA #10 QUESTIONS
$090 The 6502 has a rich history. It is modeled after another 8-bit
microprocessor. Name the processor.
$091 The 6502 b
6 a older brother that was never produced, Name its
number de i
gnation and why it was not produced.
$092 How many different opcodes are considered valid and “legal” on the
MOS NMOS 6502 line?
Bi
r
$093
ery instruction takes at least __ cycles to complete. Fill in the
ing number,
Which instructions take more time than necessary as a result of the
answer to $093?
$094
$095 What did MOS Technologies manufacture before introducing the
650X line of microprocessors?
$096 Three companies manufactured the 6502 under a cross-licensing
agreement. Name them.
$097 InN1
nd, how fast does the LMHz 6510 in the C64 actually run?
$098 What about in PAL-land?
$099 Data i
edge?
latched into the 650X microprocessor on the (rising/falling)
SO9A Through the years, the 650X line has changed yet
the part has not been changed. (A family numbers the upper 2 digits
in this case) Name the other family numbers used by MOS to denote
the 650X line.
mily number
$09B Consider the following code:
Idx #10
Ida Stt
Wh
at location does the accumulator get loaded with?
$09C What about the following?
Idx #10
Ida (Sff),x
$09D How many CPU clock signal lines does the 650X require to run?
SO9E Where does the 650X line fetch its first byte from after reset?
S$O9F One of the original designers on the NMOS
Western Design Centerin Arizona, andr
CPU chips. Name him. (Hint: it's not Chue
2 CPU now heads up
es the 65C02 and 65C816
Peddle!)
COMMODORE TRIVIA #9 ANSWERS
$080 The magazines were originally called Commodore
and Power/Play: Commodore Home Computing
seem to nail down the name of the latter as I see Power/Pla
Commodore: Power/Play used as the origina as’ well.
Anyway,Commodore Microcomputers started its life in 1979,
whereas Power/Playstarted in 198. Both magazines were published
until around 1987; when they were merged to form Commodore
Magazine, Then, around 1990, the magazine was sold to IDG
Communicationsand wasmerged into RUN, RUNwas continued for
a while, but was finally pulled out of circulation, Creative Micro
Designs purchased the rights to the magazine, and now Commodore
Worldis being produced by CMD, | am not sure how strong (if any)
alink there is between RUN and CW, but some of the same authors
write for the new publication. Just for added info, here are the ISSN
numbers:
Microcomputers
Commodore Microcomputers (Commodore Magazine)(
(
Power/Play:Commodore Home Computing
RUN (Comimodore/RUN) 074
nsactor” is also a correct answer, and info on itis below.
$081 TI ‘arnsactor”. One of the noted C64 hardware-hacking
magazines, it was originally published by Commodore Canada,
betore being sold to an individual named Mr. Hilden. Its ISSN
number is 0838-0163. As far as I can tell, this magazine died 1
COMMODORE WORLD
deaths, but officilly ceased to exist in 1989-90, Its first issue is dated
April 30, 1978.
$082 No! The newer 128 compatible chip (VIC-Ie) has 8 extra pins to.
perform timing functions specific for the 128. In addition, some of
the registers have extra functions. However, a suitable card to make
it compatible can be made.
Phase Alternating Lincistheanswerlwaslooking for, which describes
the video encoding used in Europe, but Programmable Array Logic
isalso correct, which describesthe family of chipsusedas “glue” logic
for the C64 1/0 and processing chips.
$083
$084 5: Play, Rewind, F
separated the stop
orward, Record, and Stop/Eject. Later models
and eject functions into two buttons.
$085 When you change the volume of a voice. The voice need not be
outputting anything.
$086 1
P your pi
Control P gram/Monitor
Control Program for Microprocessors
Control Program for Microcomputers.
‘The last one is considered by many to be most correct.
$087
Normally, the user cannot enter a line number higher than 63999, If
Issue 11
you want to be tricky, however, the numbers can be made to go up to
65535.
$088 The PI symbol. It is [SHFT-UPARROW] in uppercase mode, but
becomes a checkerboard-like character when in lower-case mode.
Unlike the graphics characters printed on the fronts of the keys, this
oneispositionedin the middle ofthe p.and should probably be
accessible in both character sets.
$089 In lowercase mode, type a shift-@
SO8A It is different from the 64/128. It is 50003. A zero (0) here indicates
old ROMs, while a one (1) indicates new ROMs.
$08B Interrupt ReQuest. This interrupt is used for things that should
usually be allowed to interrupt the processor. This interrupt can be
ked off by the SEI instruction.
$08C Non-Maskable Interrupt. Unlike the IRQ, this interrupt cannot be
masked by an instruction. However, some tricks can be used to
$08D *N’ stands for Negative. On instructions that change this flag, it is
set to be equal to bit 7 of the result of the instruction.
SOSE It stands for decimal mode. This mode causes certain instructions
to treat a byte as 24 bit BCD-coded nybbles.
Note that ?# will fail.
SO8F pR is the way to abbreviate PRIN
COMMODORE TRIVIA CORRECTIONS
It’s ashame that trivi
and also correct errors that crop up a
soon as Lean, So, here
$000 Wouldn't you know it, | messed up on the first question. Although the
answer stated is technically correct, here is a much better explanation:
Q$000 — Commodorestarted outintocomputi
Jam not sure ifthe first ones had the P
does PET stand for?
vith the PET seriesofcomputers.
‘T emblem, butnonetheless, what
A$000
Personal Electronic Transactor
It seems this name was an afterthought, so many other expansions can
also qualify. [twas basically named PET to cash in on the Pet Rock craze.
Some examples of other expansions:
Personal Electronic Translator
Peddle’s Electronic Transactor
Peddle’s Ego Trip
This is where the Commodore magazine Transactor got its name.
($009 What is the difference between the printers in #$008?
MPS 81
AS009 al), CBM 1521 ial), PET 4023 (IEEE-488).
(After presenting this answer, a number of people indicated that they
had printers with dot patterns different from my answer. My only
explanation is that, since the print heads on ‘the printers were
interchangeable, Commadoretookadvan ageofthat tokeep stocklow.)
QSO1F — Commodoredid NOT documentthe RREG commandin C128 Manuals,
so this question is technically correct, butalmost everyone considers the
C128D to be the same as the C128. The revised answer follows:
On the Commodore 128, the user manual left three commands
undocumented.One works, and the others give a not-implemented
error, Name the commands and wha h one does or does not do.
QSOIF
ASOLF — ‘The answer depends on which manuals you have. In the C128 System
Manual, the C128D System Manual, and the C128 Programmer's
Reference Guide, the following commands are not documented and
both return an unimplemented command error:
OFF
KEY OF
Quit
Itis, however, valid when used with the KEY command, asin
The third command is actually implemented, yet is not documented in
the C128 System Guide: RREG: reads the internal registers after a SYS
command. On page 326 of the C128D System Guide: “~RREG
fal, [xIL-fy]L status}]]]
‘This function returns the contents of the computer's internal registers
after a SYS command. The contents of a, and processor status
registers are assigned to the variable list.
Volume 2, Number 6
are not trivial (pun intention undecided) to fix. | try my
a compilation of corr
best to both present complete and correct answers for the trivia
tions for the Commodore Trivia:
EXAMP!
10 SY
The above example calls a standard kernel routine to check if'a given
logical channel is in use (in this case, logical file 8), If it isn’t, “NOT
FOUND" isprinted. Ifitisin use,“FOUND "is printed, and the logical file
number, devicenumber,andsecondaryaddressofthechannelisprinted.
So, this command is documented in the C128D System Guide. It is
interesting to note that the command does not appear in the BASIC 7.0
encyclopedia in the C128 PRG, but does appear in the command list
immediately following the encyclopedia. It seems that Commodore
either forgot about the command when introducing the C128, and
remembered it when publishing the C128D System Guideand the C128,
PRG, or decided to leave it out and then later broke down and included
itin later manuals,
QS03E On every Commodore disk, the drive stores a copy of the BAM. What
does the BAM stand for!
ASO3E — The correct answer is Block Avail billy ap. Somehow, 1 got BAM.
partially confused with the FAT (File Allocation Table) on MS-DOS,
QS04C How many pins does a Commodore 1525 printhead have in it?
AS0AC The 1525 (and 1515)platen actually has 18 bumpson it, which allow the
single pin print head to construct the 7 bit tall graphi
QS$060 When you turn on stock Commodore 16, how many bytes free does it
report?
A $060 ck and checked on the RAM in the Commodore 16 (when 1
irthed it at the house), and found that it does indeed have
bytes free, as the answer stated,
QSO6E Although theansweris correct, the wait 6502.x operation will only print
out the secret message on Revision 2 ROMs. Evidently, Commodore
found this message and removed it in Revision 23 ROMs.
To date, these are the only corrections I have been made aware of. However, don't
think lam actually thiscloseto perfection. Commodore World’sinstallmentsofthe
triviaare 1 editions or so behind the latest edition (which can be found on-line), 50
CW readersnever see some of my more ridiculous mistakes. I greatly appreciate the
thousands of Internet users, FIDONet users, and magazine and newsletter readers
that check over my answers for corrections.
COMMODORE WORLD
COMMODORE AND Comput
If Your Product Name is too Perfect
We've been recently informed by
their Fede: : income tax preparation softw
TAX . Will now be marketed under the
ancial Services Marketing Corp. that
. formerly known as
ne PERFECT TAX™.
ge comes at the end of nearly seven years of litigation over the
name with industry giant WordPerfect (recently obtained by Novell).
Details of the litigation and subsequent name change will be published
ata later date, asa final ruling on an appeal brought before the Fifth Circuit
Court is still pending.
Another Commodore Publication Passes Away
Sadly, we have to report that Lynn-Carthy Industries, Ine. has finally
notified us that they no longer will attempt to resurrect their publication,
dieHard. It's now been a year since LCII shipped their last issue of this
publication. While many of us remained hopeful that dieffard would
somehow manage to overcome their problems, official notification that it
would not be financially possible for the public
our offices last month.
In addition to the announcement, LCU approached Commodore World
and other Commodore-related publications in hopes of striking a deal to
fulfill remaining die/ard subscriptions. Due to the large losses this would
incur, the opportunity was declined by e«
learned, however, that LoadStar has agreed to substitute their disk-based
publication tosubscribers of dieHard's Spinner disk, providing subscribers
with a two-disk issue for every two disks remaining on their subscription.
ion to continue reached
ch of the publishers. We have
New Desterm & Browser Character Sets Announced
Gaelyne Moranec has made available several collections of new character
sets for use with Matthew Desmonds’s Desferm terminal program and Rod
Gasson’s Browser utility, Over 200 character sets in all are included, andare
available via FTP on cenga.uwaterloo.cain the /pub/chm/telecomm directory.
The filenames to be on the lookout for are: fullset.sf, ibmset, sfx, amiset.sfx,
chmset.sfx, chmegset.sfx, vt52.sfx, vt102.sfeand chmchrs.sfx (the latter is only
for use with Browser).
‘The character sets in the fullset.sfx collection include complete ASCII
character translations. The chmehr.sfx collection of character sets for
Browser arean adaption of sets used by QWKRRI28. The original character
sets were 5 blocks long and unsuitable for use with Browser, since Browser
uses 9 block character sets. These sets also needed major adjustments so
that Commodore graphics would be shown correctly when used with
Browser.
COMMODORE WORLD
2R INDUSTRY News
Threshold Keeps Them Coming
Announcement of the release of two more new games has arrived from
Threshold Productions,
‘The first, “Flummi’s World”, isavery nice platform type game where you
must help guide a rolling bow! from its starting point to an ending point
eon the screen. There are little beasties which get in your way
and bonuses that let you jump higher. You'll build brick steps, walls, and
many other things on your way to the end of this 30 level game. Retail price
is listed at US$19.95.
‘The second release, the “Gangster/Time Traveller” ‘shoot ‘em up
provides two games with nicely done graphics and one intent: Kill the
enemy! In “Gangster” you take on the role ofa police officer who must try to
stop the gangsters from breaking out of prison, escaping in automobiles,
and from taking hostages ina building. In “Time Traveller”, you become an
army recruit who warps through time, stopping to shoot down bi-planes,
helicopters and aliens, Retail price is US$14.95.
Threshold Productions, 17730 15th NE Suite
email: tpinfo@eskimo.com).
somewhe:
Seattle WA 98155 (internet
Color 64 Goes Freeware!
Color 64 V7.37, the last version of the popular C-64 BBS software authored
by Greg Pfountz, ed by the author to the
market as freeware.
This BBS software, with 12 years of work behind it, was declared freely
redistributable on September 16, 1995. Color 64 V8, by Fred Ogle, remains
acommercial product.
Color 64 Freeware is being supported by two BBSes in the US. Timothy
Allen’s Twilight Zone in Mesa, AZ, can be reached at 602-827-2706, and
Richard Cunningham's Desert Oasisin Phoenix, AZ, can be reached at 602-
849-2892.
Color64V7,37can be obtained via anonymous FTP at thesiteindirect.com
in the www/wanderer directory. Itmay also be downloaded from the World
Wide Web at http. //viun.indirect.com/www/wanderer/color.htm.
For more information, contact wanderer@indirect.com or the support
BBSes listed above.
has been rel Commodore
CommNet Looks To Expand
Michael Bendure, author of the C-Net DS2 Networking system and
coordinator of CommNet, recently announced the 64/128 BBS network's
plan to expand to support virtually every popular Commodore BBS system
with networking capabilities.
Issue 11
At present, C-Net 64 DS2 V2.0,2.5, and 3.0, Image Vi.2a, C-Net128 v6.0
systems are supported by the 70-site network. In the interim, CommNet
works by joining the 5 networks supported by these BBS systems into one
through the use of specialized gateways, but there is work in progress to
develop a set of network standards to be used on all supported systems.
ops of C*Base 64, Color 64, Color 128, Omni 128 and other network-
capable BBSes are invited to contact the CommNet organizers to provide
input on the project, and to submit their network packet system for
incorporation into the final structure.
Interested sysopsshould contact Michael Bendureat 614-788-8568 (voice),
614-522-6563 (CygnusX-IBBS) or mbendure@intinet.com (e-mail).
Commodore Internet Connection
Daniel Dallmann has recently announced the availability of an Internet
“demo” which he has written and released. The program is apparently
capable of TCP/IP and SLIP, protocols used by systems connected directly
connected to the Internet service providers. While not a complete
application, the demo program displays that our Commodore 64's are
indeed capable of direct internet connection.
‘The demo programis available for download via anonymous FTP at fip:/
/131.188.190.131/pub/c64, and requires a modified user port RS-232
interface. Details of the interface can be found in the Commodore FAQ,
maintained by Jim Brain. ‘To obtain a copy of the FAQ, send email to:
brain@mail.msen.com with a subject of MAILSERVE (all uppercase),and
the following three lines (all lowercase) as the body of the message:
send faq.p
help
quit
GE Seeks Buyer For GEnie Online Service
Rumors circulated early in November that General Electric was looking for
a buyer for its GEnie online service. According to Doug Wolford, a
spokesman for GE, therumorsappeared tohave been started by ajournalist
writing in the Washington Post, surmising that the logical step is to sell its
onlineservice. Four daysafter Wolford’s comments appearedin a Newsbytes
News Network story, a follow-up story reported that GEnie had informed
itsinformation providers, content providers, and development managers,
as Well as all ofits employees, that the online service was indeed for sale.
Horace Martin, VP, business development and sourcing and acting
president, GEnie Online Services, confirmed that GE Information Services
is working with the investment banking firm.of Allen & Company to
“identify potential buyers for the company's GEnie online service.”
AOL Passes 4 Million Members
Okay, so normally we wouldn't talk about an online network that only
supports the Macintosh and MS-DOS platforms in our news, but since
America OnLine, Inc, once operated the Commodore-only Q-Link, we
thought we'd let everyone know how they'redoing now that they've left for
“greener pastures. "Citingarecent Odyssey market study, AOL reports that
it has passed the four million member mark, and is now as large as
CompuServe and Prodigy combined. Ironically, the company also released
its first quarter results around the same time, which showed a 250%
Volume 2, Number 6 t:]
increase in revenues, but at net loss of $1 ith such a high loss
after the substantial gainsin revenue, we can only guess that they must have
kept the same management that ran Q-Link into the ground during its last
couple of years of operation.
Commodore CEE GEOS Products
COMMODO! as taken over distribution of several items for GEOS
users from their distributors. A few items are new or upgrades; some are
items that have not beer
Among the products are TOPDESK, Diveezil DISK 1 (New Tools2, Marker,
CreatPatt, PattDA, AutoPatta, & over 3 {OS fill patterns), DiveeziDISK2
(ULTIP ’, geoGLOBE Collection), DweezifDISK3.5 (DweezilLABEL28,
MYgeoDIARY, geoWORDS), BIG STAMP, GEOS PROGRAMMER'S
‘VIDE (by Alex Boyce—not the official version from Berkeley
Softworks), GEOPROGRAMMER HELP, geoJOURNAL MAG.
COMPENDIUM VOLUME 1, and geoJOURNAL MAC
COMPENDIUM VOLUME 2.
For additional information on theseand other Commodore Cee products,
contact: Jack Vander White, COMMODORE CEE, P.O. Box 232115,
5823 (email: jack.vanderwhite@cee-64.gigo.com),
Sacramento, CA
Accelerator Update
There have been a couple of changes in the design of the new Super64 CPU
accelerator series reported on in our las
been replaced with the 65C816S, a 16-bit version of the 6502 which also
contains an 8-bit emulation mode. This design change occured just as we
went to press on Issue 10, and we were unable to get the new information
into the news before going to press.
In addition, CMD has announced that the accelerators will now be
equipped with 128K of fast static RAM, instead of the 64K previously
advertised. This change will allow the operating s
into the fast RAM during startup, thus avoiding any slowdowns when
calling Kernal or BASIC routines. Even the fastest ROM chips jable
couldn't keep up with the fast processor without adding delay
ROM chips proved to be just as expensive,
Several other important design changes have been implemented, but
details have not been cleared for public release at this time. CMD has,
however, agreed to provide a sneak preview of the prototype for our next
issue. Stay tuned...
sue. The 65C02S processor has
ystem to be downloaded
nd
a)
ERR o F
CORRECTIONS
Issue 10, page 4: There was a typographical error in the email
address provided for Al anger. The address should have read:
d04066c @dcfreenet.seflin.lib.fl.us
Issue 10, page 25: There was an error in the STATUS BYTE
VALUES given near the bottom right corner of the Serial Bus
Device Kernal Routine Reference Chart. The value shown for
Device Not Present is SFF, but should have been $80.
COMMODORE WORLD
Just For Starters
by Stove Vander Arh
>
ALITTLE ABOUT PRINTER SELECTION
When I bought my Commodore 64 over ten
years ago, that was all bought. No monitor, disk
drive, or tape drive. I didn’t even buy joysticks;
Tused ones from my Atari 2600, Over the next
year or two IT added to my hardware, starting
with a disk drive. It was years before 1 finally
unhooked my 64 froma portable TV and attached
it to a monitor. Along the line, | bought a used
printer. 1
it cheap and figured it might come in handy
someday,
Idon't remember who I bought that Okimate
printer from, with its waxy printouts and the
horrendous paper feed. I do remember what
happened to the way | used my computer.
Suddenly, | was a publisher. I created cards,
letters, and posters using a program on a
cartridge called Magic Desk and one on a disk
called Print Shop. Everything came out looking
so profe
n’tsurel had any use forit, but got
jonal and clean! My computer was
becoming more than a game machine; it w:
becoming a tool for my creativity. Not long after
that, [ bought my first copy of GEOS and
between geoPaint and geoWrite, | could do
anything | wanted, This kind of power was
beyond anything | imagined when | bought that
lone Commodore 64 a few years before.
Today you would never buy a computer
without a disk drive. Besides the Commodore, |
doubt there is a computer around without a
drive builtin. You won't beable to usea computer
these days without a monitor. And more and
more, you simply don’t buy a computer without
a printer. Computers are no longer just game
machines; they're productivity tools or in the
words of a radio commentator | heard,
COMMODORE WORLD
& MORE SIMPLE BASIC
“information appliances.” These types of uses
require a printer. Because of this, the prices of
printersarecomingdownbelowanything could
have dreamed of when I bought my Okimate.
Back then, a laser printer, ifyou could find such
a thing in a catalog, cost thousands. The dot
matrix printer was just making inroads into the
market, slowly replacing the daisy wheel from
back in the Stone Age of typewriters. And there
was no such thing as an ink jet printer. The
printer you may be looking to buy now will be
different from the ones I had to choose from, and
not just in price. Here are some choices you'll
haveas you consider buyinga printer for your 64
or 128.
The snazziest kind of printer youcan g
laser printer. It will create the neatest printouts
of any printer and will do it a lot faster than any
other type. However, most Commodore
programs don’t have printer drivers to handle a
laser printer in its high resolution mode. Printer
drivers are little programs that your software
isthe
10
uses to know how to talk to your printer. For
most Commodore programs, the driversare built
rightin; you just have to go into some kind of set-
up area of the program to specify which kind of
printer you are using. TI
comes from; most Commodore programs were
written quite a few years ago, before anyone
could have imagined that regular folks like you
and me might own a laser printer. Since there is
nowa
’s where the trouble
y to add drivers to one of these programs,
you're out of luck. A few programs have separate
printer drivers, however. GEOS is a good
example. As long as someone is around to write
new drivers when new printers appear on the
market, you're okay. There areanumber of good
laser printer drivers for GEOS, If you don’t use
GEOS, you can still use a laser printer if you
choose carefully. Some laser printers will emulate
an Epson F'X-80; pretty much the standard for
dot matrix printers. But if you're just going to
make it act like a dot matrix, a laser printer is
bly more than you need when you consider
the relatively high cost per page.
In the last few years, a new type of printer has
become popular: the ink jet printer. It creates
printouts which rival those of a laser printer in
quality. The prices for these printers are very
reasonable, even for color. Since they're a new
kind of printer, many Commodore programs
don't support them direetly, but they will work
with the standard Epson FX-80 drivers. These
printer: y quiet and handle paperin single
sheets, although the cost per page is a bit steep.
prol
arevel
Itisan excellent choice for the Commodore user.
The standard is still the dot matrix. Ifyou buy
one which is Epson compatible, it will work with
Issue 11
almost any software using the Epson FX-80 printer driver. In fact, that
Epson FX-80 is the printer all the rest try to act like. You can get a 9-pin
or 24-pin model, the difference being that the 24-pin has better
printouts in non-graphic modes. The dot matrix printers are usually
inexpensive, include a large number of powerful features and handle
paper quite nicely.
The fear that many users have, particularly those new to computing,
is that they will make a wrong choice when it comes to hardware like
this. When it comes to printers, ifit isn’t Epson compatible, it stands
a good chance of not working with your software. Don't buy a printer
because someone is selling it cheap; buy one because it will do what
youneed it to, If possible, buy anew printer instead of used. And don't
forget to buy an interface, which is what you need to connect your
Commodore toa standard printer. Interfaces lable from CMD,
among other places,
Back to BASIC
What do you want to do? Which choice do you want to make? Over the last
few columns I've talked about using commands for branching or changing
the program flow. We looked at GOTO, a command which makes the
program jump to a new line, using IF and THEN to make choices, and
about creating a good way for users to interact with our program, This
time, we'll set up a routine which many programmers have used over the
years that works nicely and is pretty much fool-proof. We'll also look at
another powerful branching command.
Let's start with out input routine. I'll
it out here with some notes,
1@ REM INPUT ROUTINE
Refurbished Units & Repair Service !
C-64 Refurb, with P/S (No books) $54.95
C-64 Rofurb. without P/S (No books) 46.95
1541 Refurb, with cord, serial cable (No books/disks) 64,95
Monitor Cable, 5-pin DIN to RCA jacks 4.95
Serial Cable, 6-pin DIN, 6” 8.95
Commodore Power Supply for C-64 (used, tested) 7.95
Power Cord for 1541 3.95
Power Supply for 1541-II 19.95
Printers/Monitors: We have a limited supply of C-64
compatible printers and monitors. Write for current list & prices.
Ribbons: We stock ribbons for most Commodore and C-64
compatible printers. Write for current list & prices.
Service: We will repair or replace:
C-64 (not including P/S) $ 35.00
1541 $ 45.00
Service price includes parts and labor.
Send computer or disk drive with name,
address, phone #, & describe problem.
Repair or refurbished replacement will be
shipped UPS.
(Please remove any non-Commodore upgrades)
Commodore Repairs
Since 1979
ee eee
90 Day Warranty
on all repairs
and refurbished items.
a) aw er
Write for
unadvertised specials!
TO ORDER: Send check or money order for the total of your order
plus $6.00 shipping (Personal checks take 2 weeks to clear). For
COD orders, add $5.00. We currently do not accept credit cards.
Unique Services (413) 496-9275
68 Velma Avenue, Pittsfield, MA 01201
Alll items subject to availability. Prices subject to change.
MA residents add 5% sales tax (except for service)
Volume 2, Number 6
anf
(That REM at the beginning of the line makes it a "REMark,” which is
ignored by the program)
3@ PRIN
4 PRINT “2 - DOG”
5@ PF “3 - FISH"
OSE YOUR FAVORITE
PET
(These last few lines will print a nice menu on the screen, offering three
numbered choices)
60
INPUT “EN
URN*
(Whichever number the user presses will be assigned tothe v:
calling AS)
TH
100 PRINT” PLEASE MA
11% GOTO 60
N GOT
=N GOTO
THEN GOTO
OR 3 AND PRES
iableweare
200
300
400
ANOTHER CHOICE"
(The reason for these last two lines is that someone might enter some
number or letter other than 1, 2, or 3. If that happens, the program
won't find a match with any of our IF
st they
through 90. Line 100 will st
NEW PRC)
Soe
Upgrade Chips
6526, 6567,6569, 6581, 6522, 8502,
8562, 8500, 8563, 8564, 8721, 8722,
325302, 390059, 251968 ‘$8.95
901225, 901226, 901227 $6.95
251715, 251913, 8580,WD1772 $10.95
314972-03(C128 ROM Upgrade)$24.95
Motherboards
1541 $14.95
154111 $19.00
1571 $19.50
C64 $34.95
C128 $49.95
C-128-D $52.50
1700 REU(512K) Board Only... $17.95
Floppy Disk Drives
1541 $64.50
154411 w/ PS $74.95
1571 . $89.50
1581 $69.95
Diagnostics & Manua
Commodore Diagnostician: Guide to
diagnose & fix C64/128/1541 .... $6.95
CBM C64/128 Dead Test Cartridge
and Manual $23.50
C128 Diagnostic Cartridge
and manual $24.75
Manuals: MPS 802 & 1230, 1084, 1902,
1581, 1526, 1571, 801, C64, C128..Call
Commodore Chips and Pa
-THEN statements in lines 70
make another choice and line
rts
NEW PAOD CTS)
Miscellaneous
1351 Commodore Mouse . $19.95
Computer Saver
(C-64 protection system) $14.95
Printer Port Adapter
(Any CBM Printer to PC) $24.95
Monitor Cables Call
Used Monitors (Low Prices) Call
1541 Alignment Kit $15.95
‘SX-64 (2 left in stock) $125.00
C65 Computer (65/1581 drive) $169.00
1230 CBM Printer(Citizen120) .. $39.95
New CBM 3.5°DD disks (50ct) .... $7.95
MPS1000 Ribbons ( min, 3 boxes) $3,00/box
C-64 Keyboard $14.95
C-128 Keyboard (limited Qty) ... $27.50
C-128D Keyboard $24.95
SX-64 Keyboard (w/ door) $59.95
Power Supplies
C-64 non-repairable ..
C-64 repairable .....
$15.95
$17.95
C-64 Heavy Duty (5.2 amps)..... $39.95
C-128 Heavy Duty (5.2 Amps) .. $39,95
1750 5.2 amps $39.95
154111 external 110 volts. $9.95
1581 external 110 volts $9.95
1084S Flyback (Phillips) $35.50
1084-D1 Flyback $35.95
1084 Flyback (Daewoo) $35.95
Str54051 for 1802C Monitor....... $12.95
28 Grove Street, Spring Valley, NY 10977
Paxtron 914-578-6522» ORDERS 800-595-5534 « FAX 914-624-3239
CORPORATION Hours: 9-5 pm EST Add $5.00 UPS Charges * MC/Visa
i]
COMMODORE WORLD
continued from previous page
110 willjump them back to the point in the program where we originally
asked for input.)
20@ REM THIS IS WHERE THE PROGRAM GOES IF THE
USER CHOOSES 1 FOR CAT
210 PRINT: PRINT: PRINT: PRINT
(This line ally three commands, all strung together. You can do that
with BASIC ifyouseparate the commands with the colon. I try not to do this
too much because it makes the program more difficult to follow, but for
something like this it works well. All this line does is make the next print
command happen a few lines lower on the sereen.)
220 PRINT
230 GOTO
“MEOW”
20
make
(This will send the program back to the beginning so the user ca
another choice.)
300 REM THIS IS WHERE THE
USER CHOOSE FOR DOG
210 PRINT: PRINT: PRINT: PRINT
320 PRINT “ARF”
33 GOTO 20
400 REM THIS IS WHERE THE PROGRAM GOES IF THE
USER CHOOSES 3 FOR FISH
410 PRINT: PRINT: PRINT: PRINT
42@ PRINT “GLUB GLUB”
43@ GOTO 20
THE PROGRAM GOES IF
Notice how each set of commands was pretty much the same, except for the
actual words we wanted printed on the screen. First, we senta few PRINTS
to the screen to drop down three lines, put a short message on the screen,
then jumped back to the beginning. There is another command we can use
to let us reuse some of our code more than once. We just have to send along
a snippet of text each time to let it know what to print on the screen.
we'll create our generic set of commands for responding to our
user's input:
20@ REM GENERIC RESPONSE
21@ PRINT: PRINT: PRINT
22 PRINT R$
(We'll have to set RS to be the correct response text somewhere back in the
program. More on that in a moment)
230 RETURN
That RETURN is important, We're not just going to get to this routine with
a GOTO this time, We're going to use the command GOSUB instead.
GOSUB stands for "GO to SUBroutine,” which is a proper computer term,
COMMODORE WORLD
12
for that small section of BASIC commands we just wrote, A GOSUB jumps
toa new line number just like a GOTO, but a GOSUB also has built into it
away to get back to wherever it jumped off. That's what the RETURN tells
it to do, The nifty thing about RETURN is that it doesn’t have its line
number specified in advance, That means that you can use the sd
subroutine in several spots in your program and it will jump
whichever spot it was called from that particular time.
Here’s how we'll rewrite our program to use the GOSUB command:
1® REM INPUT ROUTINE USING GOSUB
20 PRINT “PLEASE CHOOSE YOUR FAVORITE PET
FROM THIS MENU“
30 PRINT “1 - CAT”
40 PRINT “2 - DOG”
5@ PRINT “3 - FISH”
60 INPUT “ENTER 1, 2, OR 3*;AS
70 IF AS="1" THEN RS$="MEOW"
(The text variable gets set right here, When we get to the subroutine, the
variable RS will be all set.)
80 IF A$="2" THEN RS$="ARF”
90 IF A$="3" THEN R$="GLUB GLUB"
10@ PRINT” PLEASE MAKE ANOTHER CHOICE”
110 GOTO 60
12@ GOSUB 200
(This line sends the program off to the subroutine starting with line 200.
When the RETURN command comes up in line 230, the program will jump
back to the line after this one, line 130.)
130
INPUT "QU: (Y/N) "78S
(We're going to give the user a chance to exit the program here)
140 IF S$="Y"
15@ GOTO 10
THEN END
(Note that we're only testing for a “Y,” which would mean that the user
wants to stop. No matter what else is entered, the program from here goes
straight back to the beginning)
Our programs are getting more complicated. But if you've been paying
attention as we learned new commandsand techniques, you should beable
to follow along quite easily. There is a consistent logic to programming
which comes from the fact that computers “think” in extremely literal and
logical terms. That doesn’t mean that our programs have to look stiff'and
plain, Next time we'll look at some ways of sprucing things up on the screen.
5
Issue 11
Foreion Exchange
In the last issue of CV, I introduced you to the
best graphic program ever available for the
Commodore 64/128: GoDot. If you just briefly
scanned that article (“Waiting for Godot"), 1
would like to suggest that you get the issue and
read the article through. In this article, we will
take a quick walk through the basics of the
program and explore the possibilities GoDot
offers.
The program is
the file “GODOT
minute (or a few seconds if you're using a
RAMLink!) as GoDot loads it’s menus and
modules. The main screen is the starting menu
screen and is divided into six windows, which
are anchored in their place. In each of the
windows you will find labeled buttons, which
are called gadgets. To activate a gadget, simply
click on its button, The two top windows are the
“Install” and “Command” gadgets. These are
used to load or save the graphic type using the
corresponding module, redisplay the last
rendered graphic, and to exit the program. In
using these loade ‘ou can convert
different types of g . The “Image
Information” window contains the largest gadget
in the main menu, the “Preview” gadget. This
provides you with a small thumbnail image of
the graphic you have loaded and are working
with, Next to the “Preview” window you will find
all the necessary information about the graphic;
its name, its source memory format, the
resolution of the four bit data and the type of the
data (color or gray).
The “Screen Controls” window controls the
rendering process of the current graphic. The
sy enough to start. Just load
s you usually do and wait a
Volume 2, Number 6
By Joseph Gaul
SAP
EO
WORKING WITH GODOT
to be displayed (Full or Clip), and with Colors
you can adjust the number of rendered colors (2
to 16). There is an additional button which
controls the graphic resolution of theC64 (Hires/
Multi).
“Color Controls” introduces the Palette with
its Requester. Requestersin GoDot open upother
gadgets, which can only be accessed through
their respective requester. The Palette serves the
purpose of collecting a new color arrangement
for current and future work. Display lets you
view the color changes which your graphic has
taken on. Ifyou like what you see, Accept them.
Ifyou don't, Undo'em! You can use the Balance
gadget to enter an additional requester which
controls the brightness and contrast of your
picture. Thisisa very sensitive tooland produces
excellent results. You can even dither with itand
alter the screen effects with ordered, pattern,
and random,
The “Image Operators” install and activate
GoDot's many modules, | was going to count
and list them all until | saw how many there are,
To take a look at them all for yourself, simply
open up the file requester and get ready to be
amazed! To active the installed module, click on
the Execute button,
13
The program disk is filled with graphics in all
kinds of formats, some of which are the finest
I've ever seen on a Commodore monitor, The
graphicofaclownand ofa hawkare classics! You
can work with these or with your own graphics,
convert them, overlay them with each other for
really cool effects and experiment to your hearts
content! The German manual contains 99 pages
of super instructions, but someone will have to
translate this handbook in ordere for US users to
take advantage ofall the possibilities GoDot has
to offer, One of the authors has taken on the
preliminary translation, but it will need some
revamping before being released. Graphic freaks
could order the program directly from Germany
and shouldn't experience problems getting it to
run, but waiting for the English handbook has
definite advantages in this ease,
Almost every month new modules and drivers
are written for GoDot. The most recent drivers
are for color bubble jet printers. The results are
astonishing to say the lea:
CMD loaned a RAMLink to Arndt Dettke, the
author of GoDot so that he could work on the
necessary device drivers and basically test the
program with state of the art hardware. When
Arndt called our European office with his test
results, we could hear his heart pounding over
the phone! He never expected his program to
deliver such speed. This was the way GoDot was
meant to fly! A US distributor should start
negotiations with the German authors and pick
up GoDot ASAP! It'sashame that only European
users have access to this fine program.
ia)
COMMODORE WORLD
A SIMPLE GUIDE
Disk Drives
TO
By Maurice Randall
In January 1983, | purchased my first
computer, a Commodore VIC-20, | took it
home and opened the box with excitement.
Allthe promotions andadvertising! had sean
sold me on this computer.
After connecting everything and hooking
up my color TV as explained in the manual, |
was ready. | turned on VIC and It reported
that it, too, was READY, | set out to see
what this modern marvel could do, and typed,
“What is my name?” | guess we hadn't been
properly introduced yet. VIC thought my
first name was SYNTAX ERROR!
As | read the user’s manual, | found out
that VIC needed tohavea program, and there
were some programs supplied in the manual
that | could type in. I did so and discovered
that VIC could do some neat stuff. All| had
to do was type [AUN after entering the
program. | could see where, with some
knowledge of how this computer operated, |
would be able to think of many different
ways to make use of it,
The next day, | turned on VIC again and
got that now familiar READY. | typad RUN
COMMODORE WORLD
14
and it once again said READY. What
happened to that program | had typed in the
day before? Lo and behold, | had to type it in
all over again! | found out that the only way,
VIC couldretain the program was toleave the
computer turned on, The manual stated that
a cossette drive was available to store my
programs on.| bought one, and then only had
to antar a program once. | could store
averything on cassette tape and then reload
it from the cassette. Plus, it kept me from,
making typing errors once | had a program.
correctly saved on tape, It was faster than
typing in the program aver again, Instead of
taking over a/half hour fowrype In a small
program, |couldreload the program fromthe
cassette in 5 or 10 minutes, What a time
saver thar was!
Eventually, | needed something
than the cassette tape drive. | purchas
Commodore 1541 dis drive and a box
disks. This 1541 drive was much fast
the cassette drive. | now had more data
storage available to me than | would aver
need, Ordid |? The rest is history.
Issue 11
The Most Famous
Disk Drive Of All Time
This 1541 disk drive from Commodore has been
loved by millions, and no doubt has been hated
byjustasmany. No matter what, the 1541 format
was and still is the standard used by software
companies to distribute their work. Every
Commod eeds to have at least one of
these drives. | ted users have at least
two,
Even though my first 1541 seemed new tome,
itwasnot new to theindustry. Ithad been around
for some time, and even the first 1541's were a
product of time. They were descendants of
previous disk drives that Commodore produced
and used with the PEL/CBM series of computers.
The 1541, though bulkylooking today, wasrather
compact in size compared to it's predecessors.
The 1541 continueda tradition ofCommodore
’s own operating system, Inside the
inthatithas
ing System (knownas DOS), the
can receive a command through the serial
from the 64 or 128 (or the VIC-20). If the
id, the 1541 will report back to
omputer with the results of the command,
wise it will report an error. There are many
igh these commands or a combination of
, the 1541 can be instructed to do things
CBM 1541-11
Upon plugging ina 1541 and turning it on, it’s
ready to go without any complicated installation
onthe users part. Other computer platforms have
a new term for this, they call it ‘Plug N Play’,
Commodore marketing never gave this feature a
name, it’s just the way we've always done it!
Since the 1541 contains its own operating
system as well as a small amount of RAM, a
program can be written to reside and run within
the drive. This is normally how a copy-protected
disk is accessed, Various schemes have been
employed in order to fool the software pirates,
and most of those schemes take advantage of the
drive's programmable features, But by the same
token, the pirates also use the drive's capabilities
in order to defeat the copy-protection schemes.
Perhaps the most useful programmability of
the 1541 has been in the area of fast loaders;
routines that are loaded into both the drive and
the computer in order to speed up the
communication on theserial port. GEOS operate:
this way. If this were not possible, then GEOS
would, never have gained the popularity that it
1541, But most wei the IBM drives used a
double-sided disk. The IBM drives had two heads,
thus allowing both sides ofa double-sided disk to
be sible. It wasn’t long before 1541 users
zed they could use double-sided disks, All
they had to do was flip the disk upside down and
cut a notch for the write-protect detector. One
disk could now take the place of two disks.
Double-sided disks became cheaper, and
single-sided diskssoon becameextinct.IBMusers a
rea
15
were buying double-sided 5.25 disks in large
quantities, and so were Commodore users,
The Most Under-Rated Drive
The 1571 drive came along when Commodore
released the new 128. Not only did Commodore
ofl used mMithOUe faving! to flip them
over, just like the big boys.
lique feature, Itcan perfectly
‘0 be outdone, the designers
ethedriveemulatethe
he new C-128/1571 combo
ofboth worlds.
ice the 128 had the ability to
To top it off, s
bootupinCP/Mmode, Commodoreaddedsome
additignl capabilities to the 1571. It could read
from and I write to most ae formats from. ites
was Send tr those :
ee af
Reremba
seemed leant
used on the mh Y was.
designed to operate at a much Care port
speed than the C- or pooerpatt
the 128 was operated in 64 mode, the 1571 had to
slow down to the speed of the 1541. Supposedly,
compatibili
The 1571 never really caught on bi;
software companies still released their soft
in the 1541 format because the 1571 was able to
read the single-sided format with no
was the reason.
problem, It wouldn't matter which drive
was being used, only one disk format was
as the 1571 was, the
Commodore user could get by without
ever having to own one, It'sa shame; there
needed, As advanced
was no other drive like it on any platform,
Disks Are Getting Smaller
Just about the time you would think you
needed bigger drive to hold bigger disks,
the disks and the drives get smaller! Along
came the 1581. It was smaller and so we
the disks, But those handy little 3.5 inch
plastic-cased disksactually hold moredata
than even the larger 5.25 inch double-
sided disks.
Commodore wasin the Amig
and the Amiga’s standard drive was a 3.5
inch unit that was built into the machine.
re
usiness
Since Commodore already had some 3.5
inch mechanisms lying around, someone got the
idea of modifying the DOS from the 1571 to work
withit. The result wasa nicelittle drive that could
hold more than double the 1571.
The IBM community was beginning to see the
value in 3.5 inch drives also, The 5.25 inch drives
were beginning to fade in popularity on that
platform. The 1581 was also given the ability to
read and write to IBM formatted disks. It'snative
format, however, was specificto the Commodore.
It could connect to the serial port just like the
other drives and communicated just as fast as the
1571. To theuser, itseemeda little faster because
theactual diskaccess within the drive was quicker.
Oddly, the 1581 was never packaged along
with a computer. When Commodore released
the 128D, it had a built-in 1571 drive. The 1581
had to be purchased separately. Many serious
Commodore users bought one, but it’s suprising
how many users have never owned one. That has
tobeblamedon the software companies. Original
software was still released in the 1541 format.
The 1581 usesa disk that is considered to bea
double-density disk. Probably in the early days of
the 3.5 inch disk, there was not any
mention ofits density, But the IBM use
storage, so along
came the high-density disks. That's where
Commodore stopped...
now needed more da
And CMD Continued
Commodore must have made a bunch of
1581's, because long after production
stopped, they were still shipping units.
Even after Commodore closed its doo!
new units could still be found. Someone
in engineering no doubt thought of
producing a high-density version of the
1581. But there were just too many 1581's
sittingin thewarehouse. [think the pencil
pushers won. The 1591 never came to be
(I think that’s what it would have been
called, it was the only 15x1 number left!)
It would have been a good drive to have.
Thanks to Creative Micro Designs, we
have the 1591 after all. But it’s called something
else, and it is also much more than the 1591 ever
would have been. It's the FD-2000. This drive can
plug into the serial port just like any of the
mmodore drives and will do just about
anything a Commodore user needs a drive to do,
Disk Drive Speed Comparison
Because disk drives are mechanical devices, differences in the (Disk Operating System) and serial bus communication methods.
mechanisms used can make abig difference intheirperformance— The Commodore 128 uses a fast serial transfer protocol (in 128
especially when comparing 5.25 inch mechanisms to 3.5 inch mode) thathas a profound effect on all the devices tested—except
mechanisms, Other factors in speed include efficiency ofthe DOS the 1541, which has no built-in fast serial routines.
Drive Speed On C64 Drive Speed On C128
(or 64 Mode on C128) (in 128 Mode only)
operation time in seconds ‘operation time in seconds
LOAD % LOAD 95
154 block PRG bad 154 block PRG at
66 6
SAVE SAVE a
154blockPRG fF = 154 block PRG 31
Ee 27
READ 84 READ fn
125 block SEQ rs 125 block SEQ 16
52 12
WRITE 98 WRITE 3
125 block SEQ = 125 block SEQ Ss
40 21
COMMODORE WORLD 16 Issue 11
The beauty of it is that it can read and write toa
1581 disk.
‘The FD Series drive is actually offered in two
different models. The other one is known as the
FD-4000. The main difference is in the drive
mechanism that is used, The FD-4000 can not
only use the double-density disks like the 1581
along with the high-density disks as the
s, but it can also use an
enhanced-density, or ED disk. The ED disk can
hold t s much data as the HD disk and the
HD disk holds twice that of the DD disk.
the top of the
hey are the most
‘The FD Series drives are re;
heap inthe computerindustry,
remarkable and versatile dri
any computer platform. A disk ean be formatted
and partitioned in much the same way. An
es ever made for
individual partition on an FD formatted disk ean
simulate any of the popular Commodore disk
drive formats. You can put 1541, 1571, or 1581
partitions on the disks, or you can use CMD's
proprietary native mode partitions. Of course,
you can have multiple partitions on each disk,
allowing you to have a mixture of different
partition types. The only limitation is on the
amount of disk space available
One example ofusing the FD drive would be to
take an inexpensive high-density disk and put 9
1541 partitions on it. You could then take the
whole disk copier that CMD supplies, known as
“MCOPY", and copy nine of your non
copy-protected 1541 disks to it. The disk could
cither be used for backup purposes, or you could
use it for your actual work disk and put your
original 1541 disks away for safe keeping, IF you
have several disks that you use on a regular basis,
you would now only need one disk.
The Pattern Ends
You may have noticed that the IBM industry has
been setting thestageand controlling the types of
disks we use. We've gone from single-sided to
double-sided disks. Then we started using 3.5
inch disks. When CMD introduced the FD dri
we could use the high-density 3.5 inch disks. 1
IBM users keep wanting more, and somehow we
are able to follow along and keep up with them.
You would think they would also want the ED
disks, After all, they hold twice as much data as
the HD disks. On an IBM machine, an HD disk
willonly hold 1,44 me
an IBM can be quite larg
e
ome of the files usedon
and the data files that
can be created can be huge. So, itwould seem that
the ED disk format would be popular. This just
tthe case. Software manufacturers steered
towards the CD-ROMs for their original software.
Ifthey supply software on disk, it’sin high-density
format. If they need more than one disk, they do
Volume 2, Number 6
so. | don't know if the users aren't interested in
theED format, ifit'sthe computer manufacturers
reluctance to equip new machines with the
mechanisms, orifsoftware companiesaresetting
the standard. Whatever itis, Loppy drives are out
and CD-ROMS and huge hard drives are in. Most
IBM users have one floppy disk d
Commodore users have three, four, or even more.
What this has done is made the ED format
scarce. Itnever took off; the IBM industry sets the
standard. The companies that manufacture the
many
ED mechanisms have all but ceased production
That means that the FD-4000 is in
very limited supply and the ED disks are still
much higher priced than the HD disks, The
FD-2000 does not suffer from any shortage
problem. It will be around for a long time to
of the units:
come.
I think we've seen the end of the disk drive
pattern between computer platforms. To a
Commodore user, a high-density drive can holda
tremendous amount of
and data files tend to be smaller than a typical file
on another computer platform, we are perfectly
Since our programs
happy with a high-density disk, But we also have
the luxury of the ED disk in an FD-4000, at least
for those who have already acquired one or are
planning to. Just think, a single floppy disk that
can hold four 1581 partitions. It sure is nice.
What's really amazingis that many people are
still very
would think the 1541 would be too old and
The
kewise,
‘ontent with their 1541 drives. You
541 grew out of it’s
predecessors, and ery drivesince then
has been built on the same ideas, only better. It
would be hard to top the ED Series drives, and
any serious Commodore user should think about
owning one. But you still need one of those old
beloved 1541's!
primitive toda
©)
5
Disk Drive Specifications & Capacities
1541 1571 1581 FD-2000 FD-4000
Controller Type GCR GCR/MFM MFM MFM MFM
Physical Media Size (inches) 5.25 5.25 35 3.5 3.5
Media Type SSDD DSDD DSDD DSDD/HD DSDD/HD/ED
Rotation Speed (RPM) 300 300 300. 300 300
Heads (disk sides) 1 2 2 2 2
Cylinders 35 35 80 80 80
Logical Blocks/Cylinder 17-21 34-42 40 80 160
Logical Block Size (bytes) 256 256 256 256 256
Physical Sectors/Cylinder 17-21 34-42 20 20 20/40
Physical Sector Size (bytes) 256 256 512 12/1024 = 12/1024
Formatted Capacity (bytes) 174,848 349,696 819,200 1,638,400 3,276,800
Maximum Blocks 683 1,366 3,200 6,400 12,800
Maximum Free Blocks 664 1,328 3,160 6,336 12,736
Overhead Blocks 19 38 40 64 64
Maximum Files/Directory 144 144 296 5,658 11,347
Maximum DOS Directories 1 1 27 2,830 5,674
DOS ID 2A 2A 8D 1H 1H
DOS Buffers 5 5 8 82 32
Device Number Switching N/A 8-11 8-11 8-15 8-15
Bus Protocols IEC IEC/CFS IEC/CFS EC/CFS/JD IEC/CFS/JD
Microprocessor 6502 6502A 6502A 65C02 65C02
Clock Speed 4 MHz 2MHz 2MHz 2MHz 4 MHz
RAM 2K 2K 8K 32K 32K
ROM 16K 32k 32K 32K 32K
MS-DOS Format Support NA 360K 720K 720K/1,44M 720K/1.44M
2.88M
Options NA N/A N/A Real-Time Real-Time
Clock Clock
17
COMMODORE WORLD
Commodore Drives
ommodore has had a long history,
producing a wide variety of peripherals
for their popular computer systems. In
this article, we'll focus on the disk drives making
up Commodore's 15xx series, mainly intended
for use with the VIC-20, C-64, and C-128
computers. [ hope you'll enjoy finding out about
the various models and how they came about,
Atthistime, I'dlike to precede this article with
a brief disclaimer concerning the information
presented here. | have tried to the best of my
ability to present the most accurate information
pertaining to the history of Commodore
and its products, Most of this
information has been confirmed, but
some of the details either have not been,
or cannot be confirmed at this time.
Where such information is used in this
article, I've taken special care in noting it
assuch. Ifyou haveany information that
can either confirm or disprove the
statements presented here, please
forward these to me by whatever means.
possible.
In The Beginning.
Let us step back in time
produced disk drives almost since the time they
introduced their first computer system, the
Personal Electronic Transactor or PET. Since
those first computers were aimed at business
environments, Commodore produced disk drives
to satisfy the need to store and retrieve large
amounts of data in an easily accessible and
economical fashion, Many of those will be
covered at’ r date, in a separate article on
PET/CBM Drives.
Intheearly 1980's Jack Tramiel ofCommodore
decided that the world was ready fora “computer
for the masses” and introduced the Commodore
VIC-20, one of the so called “home computers”.
Commodore
Volume 2, Number 6
Jack estimated that typical home computer buyers.
would purchase a cassette tape drive unit for
mass storage. One might say that Jack estimated
wrong. Soon after the VIC was introduced,
storage
‘e that Commodore was “planning” at the
customers started asking about the di
dev
time.
Caught somewhat off guard, Commodore
ed to deliver on the promise ofan inexpensive
disk drive unit for the Commodore VIC-20. The
result was the Commodore VIC-1540 Floppy Disk
Drive. The 1540 was the father of the very
Left stack, top to bottom: SED-100L, 2031LP, 2031, 2031 (ull-height). Right stack,
top to bottom; 8250,
8050.
successful Commodore 15xx disk drive line.
However, the 1540 drive was itself'a descendant
of another Commodore drive, which is where we
begin our tour.
The Commodore 15xx drive line can trace its
roots back to the 2040 dual floppy disk drive,
developed for the PET/CBM line of computer
systems, Although we won't go into much of the
detail ofthe 2040 in thisarticle, it wasa dual drive
unit that was enclosed in a heavy sheet metal
case, and contained “full height” drive
mechanisms. The 2040 is one of the earliest drives
that Commodore produced, and it was mainly
used with the early PET/CBM line forcomputers.
18
The PET/CBM 2041—A Myth?
Research suggests that the 15x series of drives
was not created directly from the 2040 disk drive,
however, but that an intermediate dri
between the two. This drive i
Commodore 2041 disk drive. Although no
confirmed reports of this drive's existence have
surfaced, Commodore sources note that this
drive was actually the unit that became the 1540,
We do know that the Commodore 2041 disk
drive was pre-announced and was slated to be
available in mid-1979. Evidently development
was temporarily scrapped, only to be
rejuvenated when the demand fora disk.
drive for the Commodore VIC-20
swelled. The development of the 2041
disk drive was then evidently resumed,
albeit with one important change: the
unitwould be called the VIC-1540 floppy
disk drive.
The VIC-1540
The 1540 unitutili
double-density magnetic floppy disks for
information storage and can store
168,656 bytes of user data per disk, For
recording data onto the floppy d
Commodore-proprietary Group Code Recording
(GCR) system was used. Although earlier
Commodore drives were dual drives and used
full height meachisms enclosed in metal cases,
the 1540 uses a halt height drive mechanism
developed by ALI trie Company, LTD., and
is housed in a durable plastic case measuring
¥7mm high by 200mm wide by 374mm deep.
‘The case is off-white in color, and the affixed
decal contains simplistic white lettering on a
brown background. In addition, the VIC-1540
drive differs in its interface to the computer
system. Earlier drive units used the standard
IEEE-488 parallel bus to communicate with the
COMMODORE WORLD
computer system, but the 1540 broke with that
tradition and implemented anew serial bus (also
called IEC bus) interface, Why the drive uses this
bus i
interesting story in itself, A noted
Commodore authority, Jim Butterfield, related
the details of this change to me:
“Asyouknow, thefirst Commodore computers
used the IEEE bus to connect to peripherals such
asdiskand printer. lunderstand that these [cables
for the IEEE-488 bus] were available only from
one source: Belden cables
Commodore's computer
of stock on such cables (mil
knows?) In any case, Commodore was in quite a
fix: they made computers and disk drives, but
couldn't hook ‘em together! So [ack] Tramiel
issued the order: ‘On our next computer, get off
thatbus. Makeitacableanyonecanmant
And so, starting with the VIC- 20 the serial bus
was born, It was intended to be just as fast
as the IEEE- 488 it replaced.”
‘Thestory mighthaveendedthere,except
anyone who has ever used a 15xx series
driveknowstheycanbeasslowasmolasses
when loading data. How could this be? Jim
Butterfield explains:
‘Technically, the idea was sound: the
6522 VIA chip in the VIC-20 and the 1540
has a ‘shift register’ circuit that, if tickled
with the right signals (data and clock) will
cheerfully collect 8 bits ofdata without any
help from the CPU. At that time, it would
signal that it had a byte to be collected, and
A couple of years into
areer, Belden went out
ary contract? who
acture.”
the processor would do so, using an
automatic handshake built into the 6522
to trigger the next incoming byte. Things
worked in a similar way outgoing from the
computer, too. However, we early PET/CBM
freaks knew from playing music using the 6522
chip that there was something wrong with the
6522's shift register: it interfered with other
function: ‘turn off the music before
you do anything else’,
“The Commodore engineers, who only made
the chip, didn’t know this until they got into final
checkout of the VIC-20, By this time, the VIC-20
board was in manufacture. A new chip could be
designed in a few months (yes, the sili
had application notes about the problem, long
since), but it was TOO LAT
“A major software rewrite had to take place
that changed the VIC-20 (and the 1540 disk drive)
into a ‘bit-catcher’ rather than a ‘character-
catcher’, Itcalled for eight times as much work on
the part of the CPU; and unlike the shift register
plan, there was no timing/handshake slack time.
The whole thing slowed down by a factor of
approximately 5 to 6 [times].”
hherule
con guys
Volume 2, Number 6
So, Commodore started out the drive series
with a significant speed handicap, which we will
see them perpetuate through many models in
this series.
To create the disk operating system for the
VIC-1540 drive, Commodore used its PET/CBM
drive DOS code as a
support for a second drive unit. In addition, the
base and striped out the
IEEE-488 communications code was removedand
replaced with support for the new Commodore
serial bus. With these changes, Commodore
created a new DOS revision that would become
version
the base for most of the 15xx line:
The VIC/CBM 1541
The most popular (and most common) drive in
the Commodore 15xx series is undoubtedly the
1541, which was produced in a number of
permutations over theyears. attempt tobrielly
Lefistack, top to bottom: 1541 (Alps), 1541 (Newtronics), 1541 (Newtronics),
VIC-1541, Right stack, top to bottom: 1541C (Newtronics), 15410
(Nwtronics), 1541C (Alps), 8250LP.
explain the differences between the various
versions.
The 1541 disk drive unit was introduced with
tem. The first
version of this drive, the original 1541, was
the Commodore 64 computer sy:
physically equivalent to a 1540, and differs only
in the DOS code used inside the unit. Again, the
version is 2.6, but changes are apparent. Let us
again turn to Jim Butterfield for explaination:
“When the Commodore 64 came out, the
problem VIA 6522 chip in the VIC-20 had been
replaced by the CIA 6526. This did not have the
shift register problem which had caused trouble
on the VIC-20, and at that time it would have
been possible to restore plan 1, a fast serial bus.
Note that this would have called fora redesign of
the 1540 disk drive, which also used a VIA.
best I can estimate—and an article in the IEEE
Spectrum magazine supports this—the matter
was discussed within Commodore, and it was
decided that VIC-20 compatibility was more
s s the prospect
important than dis!
19
of a 1541 redesign was an important part of the
decision, since current inventories needed to be
taken into account. But to keep the Commodore
as a ‘bit-banger
* anew problem arose.
The higher-resolution screen of the 64 (as
compared to the VIC-20) could not be supported
without stopping the CPU every once in a while.
To be exact: every 8 screen raster lines (each line
of text), the CPU had to be put into a WAIT
condition for 42 microseconds, so as to allow the
next line of screen text
nd color nybbles to be
swept into the chip.(More time would be needed
if sprites were being used), But the bits were
coming in on the serial bus faster than that: a bit
would come in about every 20 microseconds! So
the poor CPU, frozen for longer than that, would
bits completely! Commodore's
solution was to slow down the serial bus even
more. That’s why the VIC-20 has a faster serial
bus than the 64, even though the 64 was
capable, technically, of running many
times faster,”
So, as Mr, Butterfield explained, the
1541 DOS code was patched to send bits to
peed. Since VIC-
vantage of the full
ransfer speed, two special
user commands (Ul+ and Ul-) were added
tothe DOS toallow software control of the
transfer speed. In typical Commodore
tradition, UF speeds up the transfer speed
\s, While Ul+ slows it down. The drive
miss some set
slow
the computes
20 users could take
maximum data
25%
powered up in Ul mode,
So, the 1541 was basically a kludge to
the 1540toallow thedrivetowork with the
newmachine. The firstunits were off-white
in color, most likely an effort to deplete existing
1540 case stock, while later units sport a brown
case that matches the Commodore 64 computer.
alsevolved fromthe basiewhite-on-brown,
1540, to the
multicolored decal present on the later units,
Internally, the drive electronics went through
humerous revisions, and the mechanism
underwent a chang
The early 1541 d ame ALPS
drive mechanism as found in the 1540,
nism is easily spotted because the closer
nism of the drive is of the “push-down”
type, where a user inserts a disk, and the pushes
down on the drive door. To release the disk, the
user pushes in on the closed door, This drive had
numerousoverheatingand mechanical problems,
similar to the one of the
as well,
ves used the
so Commodore eventually formedajoint venture
with a company called Mitsumi Electric
Company, LTD. The joint venture was named
‘ewtronics Company, LTD.,andits sole purpose
to produce a cheaper and more reliabledrive
COMMODORE WORLD
mechanism. These newer units are distinguished
a“turn-down" levercloser. The
id turns the lever to engage
the unit. Returning the lever to the open position
frees the disk for removal. These drives were
indeed better, although both versions suffered
overheating to some extent
‘The Commodore $X-64 portable system also
made use of a (built-in) 1541 disk drive unit.
bythe presence of
user inserts a di
Commodore would sue them. Needless to say,
Chinon cut CBM a deal on mechanisms, and the
1541-II was born.
With this drive, Commodore changed from
using an internal power supply to supplying
powerviaanexternal powersupply “brick”. With
the power supply now located outside the drive
case, the drive shrunk in size to 77mm high by
184mm wide by 256mm deep, As with the 1541
Although this unit has no unique
model number, it could be
purchased separately to upgrade
the 8)
DX-64 portable, Thisupgrade was
made possible by removing the
plastic compartment above the
lower drive and installing the
4 into a double drive
second drive unit in its place.
‘The next version of the 1541 to
be released was the 1541C disk
which was introduced with
2 epen VIC-1540.
the Commodore 64C. This model
Left stack, top to bottom: 2031, 2031 LP, Right stack, top to bottom: VIC-1541,
shares the same physical dimensions of the 1541
drives, but is housed in a case color coordinated
with the C-64C unit. Internally, this was the first
15xx series drive to fe:
which could be used to alley
“head knock” problem. This problem, present on
alloftheprevious Commodoredrives, was caused
by the drive not knowing where track one was on
thedisk. The DOS compensated by stepping back
the head the ma
‘on the disk, thus ensuring that it would reach
track one. Ifthe head was anywhere but at the end
ofthe disk, head banging would occuras the head
reached the track one stop and the software tried
to continue stepping the head. Interestingly
although early 1541C units contained a DO:
patch (a toutilize
the
forced Commodore to make this sensor and the
track one sensor,
ate the dreaded
ure
imum number of tracks present
in, noversion number chan
sor, undisclosed compatability problems
DOS patch optional on most versions of the
1541C. Later units contained no sensor at all. For
units with the drive sensor, users could cut a
jumper on the circuit board to enable it.
At this time it is important to also mention
the 1542 floppy disk drive. Basically a 1541 ina
charcoal gray case (color matched to the
Commodore 264 series of computers), this drive
s pre-announced, but may not been
actually produced,
‘The last drive in the 1541 series is the 1541-1
disk drive. This unit was the result of a possible
lawsuit. At the time, Commodore found out that
a company called Chinon was developing
Commodore drive mechanisms for the clone
ng Commodore. CBM
asked Chinon either to give them a good deal, or
Wi
market and was undersel
Volume 2, Number 6
there are two versions of the 1541-II drive. One
has a deep “turn-down” lever that hits a landing
atthe top ofthe front bezel (Chinon mechanism),
while the other has a shallow lever that has no
such external landing to rest against (Newtronics
mechanism).
The CBM 1551
The 1551 was an “enhanced” 1541 for the
Commodore 264 computers Although
DanenessestiebtLt et a
Top to bottom; 1541-1 (Newtronics), 1541-1 (Chinon), the
rather rare 1570,
much of this unit is identical to the 1541, this
drive did differ in some respects. Colored charcoal
gray tomatch the computers, the 1551 interfaced
to the Commodore Plus/4 and C16 via a special
parallelinterface cable. Thisarrangementallowed
20
the unit to transfer data 4 to S times faster than
the 1541, but was only usable on the
The version of the DOS in this unit i
although the DOS is changed subst
‘ommodate the parallel interf
numerous enhancements in the drive DOS
Research suggests that the 1551 drives camew
both ALPS and Newtronics drive mechanisms.
Unlike earlier 15xx drives, of which up to4 could
be attached to a computer, only two 1551 units
could be hooked up to a 264 series computer,
During the drive unit's development,
prerelease documentation referred to this drive
as the SFS-481 Fast Disk Drive (SES probably
stands for Super Fast System, or something
similar). This drive gathered many nicknames
during its development, including TED Dis!
(TED stands for Text Editing Device and this
name pays homage to the original 1540 being
called the VIC-1540), the Kennedy Drive, or
Kennedy ‘Technology Disk (KDisk). The latter
two suggest a play on the name TED Disk, and
refer to Ted Kennedy, the US Congressman.
(What that says about the drive I have no idea.)
Ironically, this drive is a rarity in the United
States, as almost all of the production units were
manufactured for the European community,
The CBM 1571
‘The next drive in Commodore's drive evolution
is the original 1571 drive, which ushered in anew
case style,
styling of the Commodore 128 computer, The
computer which this drive was introduced with,
This drive is, in some respects, the most
complicated drive ever
manufactured.
The 1571 unit can function in one of two
modes. One mode, called 1541 mode, causes the
unit to behave just like a 1541 drive, complete
with DOS 2. d the idiosyncrasies of the 1541
drive. The second mode is called 1571, or native
mode, where the drive allows data storage on
rhe slim refined case matched the
Commodore
both sides of the floppy disk. This increases the
storage capacity from 170 kilobytes to 340
kilobytes.
The 1571also has hardware and firmware that
allowitto read and write any number of single- or
double-sided Modified Frequency Modulation
(MEM) encoded disk formats, included so that
the drive could be used with the Commodore
128's CP/M mode to read CP/M disks made for
other computer systems. The MEM recording
system bears special mention since it is the first
time since the production of the Commodore 8"
$280 floppy disk drives (which could read IBM 8"
floppy disks) that Commodore supported an
industry standard disk format.
COMMODORE WORLD
Whilein native mode, the 1571 utilizes version
3.0 of the DOS code, which is built off the 1551
DOS code. This may seem acceptable, since
Commodore finally changed the ver
Commodore had already issued version 3.0 of
DOS with the 8280 8" PET/CBM floppy drive
andthe D9060and D9090 PET/CBM hard drives.
‘The drive ROMs were not sim
‘The various 1571 drives manufactured by
Commodore made use of drive mechanisms by
both Newtronics and ALPS. Unlike the 1541
model, however, the differences between the
ms isn't immediately obvious, as both
tch en
sion, but
in any way.
mechani
use a “turn-down’
With the 1571 drive, Commodore finally
corrected the data transfer speed problems
present in the 15xx series by introducing “burst”
loading. Although touted as a new development,
this enhancement merely utilized the original
plan of performing hardware bit transfers that
were developed for the 1541 disk driv
Commodore had also created a single-sided
version of the 1571, dubbed as the CBM 1570
disk drive. This unit, featuringa 1541C style case
and single-sided drive mechanism, contained the
same DOS version number, and could operate in
burst mode just like the 1571.
With respect to the 1570 and 1571, I’ve been
unable to determine which was released first,and
how much time there was between the release of
the two drives. There is some speculation that the
1570 may have been released to accompany the
early C128's in Europe (where no FCC approval
was needed) while Commodore was resolving
some final problems with the ROM code needed
for the full 1571. While the only 1570 drives I've
encountered contain ALPS drive mechanisms, it
is believed that 1570 drives with Newtronics
mechanisms were also produced.
As Commodore prepared to release the 12
acost reduced version of the 157 Lwas er
inclusion as an internal dri
Although the mechanism differs from the older
external 1571, the drives are functionally
equivalent. There are two names by which the
128D'sinternal 1571 are identified; some referto
it as the 1571D, while others refer to it as the
15S7ICR.
Oddly enough, Commodore designed a new
external 1571 which used the same mechanism,
and probably had similar electronics, and this
project was referred to by those working on it as
the 1571CR. It appears that this drive was to be
the 1571-II drive, whi lly
with a smaller case and drive mec!
gement system.
his bas 71 drive
anism and a
1541-II external power supply. While some
reports claim this unit exists in larger quantities
in Europe, sources from within the late
Volume 2, Number 6
Commodore Engineering department claim that
the design was never produced.
Commodore also worked on creating a
disk drive, which was a dual drive version of the
1571 disk drive unit, The project was never
completed, however, and thus the 1572 wasnever
jure
produced. A concern over power supply
problems and DOS code bugs kept this drive
from ever reaching the market.
The CBM 1581
‘The last in the line of drives produced by
Commodore for 8-bit users was the 1581 3.5"
71 drive differed
disk drive. Just as the 1
substantially from previous drives, the 1581 was
also a major departure from all the previous
) disk drives. For the
Commodore (non-Amig
Top to bottom: CMD FD-4000, two 1581's, CMD HD-20,
1571 (Alps), 1571 (Newtronics).
first time, Commodore built a 3.5" drive unit,
using a standard IBM drive mechanism, and
ndard MFM recording
format for the disk media. To shield users from
or differences, Commodore manipulated the
DOS code in the drive extensively to create the
illusion ofa single-sided, 256-bytesector drive;in
supported the IBM st
reality, the disk drive mechanism employed was
double-sided, and had 512-byte sectors.
This drive shared the same “burst” loading
capabilities of the 1571 drive units, and could
store 802,640 bytes of user data. The physical
dimension of the unit are 63mm high by 140mm
wide by 230 mm deep. This unit was only
21
manufactured with an external power supply
identical to the ones used on the 1541-1] (and
planned for 1571-1).
Three more 3.5" disk drive units were in the
works at Commodore at one time or another,
One of these was to be installed internally in a
computer system often referred to as the C65 or
C-64DX. The Commodore C65 was never placed
into full production, how and I'm una
of whether the drive was ever formally named,
Some call it the 1581D drive, making the 1571D.
logy, while others refer to this unit as the C65
drive, as this drive is substantially different from
the 1581 unit.
This internal drive used a cost reduced version
of the 1581 drive mechanism. However, unlike
the 157 LD (which shared the same DOS code as
the 1571) this unit contained a DOS that was
pled from the Commodore 8250 LP IEEE
drive, version 2.7, In addition to the DOS base
code switch, this drive avoided the speed
limitations in the 15xx line by increasing the
transfer rate between disk and computer to a
maximum of 50K bits per second, compared to
4800 bits per second for the 1541 drive. The most
interesting aspect of this drive is that it has NO
microprocessor of its own, All previous drives
are
contained at least one CPU, and the drives prior
to the 1540 contained two. In comparison, this
driveshareda CPU with theC65 computersystem.
Anexternal drivew
so planned forthe C65,
though again, I'm not aware of a model number.
This optional external 3.5" disk drive was to use
a special disk drive interface plugged into a
dedicated port on the rear of the C65, and was to
transfer data as fast as a standard IBM floppy
drive—slightly slower than the internal drive,
So, what was the third drive? This one is a
recent discovery, and was also part of
Commodore's ongoing engineering efforts in
finding new ways to market their 8-bit line. CMD.
recently obtained and then sold a one-of-a-kind
European-style 128) computer, the plastic
portable 128 that used the standard PAL version
of the 128 motherboard combined with a
standard 1 drive. But this unit had a
differerence—the front panel openin;
had been
made for a 3.5" drive instead. Inside, the new
owner found a drive similar to the 1581, but the
DOS ROM clearly identified it as. a 1563!
Vl Be Back...
As you can see, Commodore disk drives have a
rich history. It's been difficult to document the
exact progression of drives over the years, but
we've a lot more information. Watch for details
in future issues!
%)
COMMODORE WORLD
Nbtes Ov) | Soe Series Drives
2 excessTion of
a &SC2 saath Beat val Ta The one,
Tre Osi ec CPU in Ea Tre at As sTaTed ear
sed ap CPU, ond Th PU
6 unknown
in The edlernul COS dre
\s4o
ALS
brown while, dex
ATs ore Wased wn 0fS-while plate aises With The
4 eyiTain an ALPS mechanism WTernully,
all eoyaTatiy Tree rated ceo keued revision, Ackauwd The
“wg bowed because WP aners alevsT all of The deive's length
Tre 1 SHC 0S abe coAfuny a
IT aTTomateally bad a S
won)
Eran disk upon
deve WoAS mp Te a sUoroTTne aT
The ceséT moTwe. The ale There
ae 0 CLOCK an} IATA VE
nw on Then store *
The high at Luni,
AT UAT wilh wear Alo
We Slenuere length To |
ype Ta The x anions wie lauds a SR Sie and exeotTes
The Commabkire, « comypition never used This GedTure, and some
muchines These lines runtomly high 50
Commradore, removed Tr ter ROW) revisions.
early 1 SU
and Then
wo &
Tis
ake \wus also version.
1S) UnkenseaT
wuny
orignvally produced willy The 5
While case and decal Gave | sue wel 1D chang d To S41 By
and The same ALPS mehunism in The | SHC, Subsea eat
mols spotted a GY cle evildhed brown case, a new eniPalored
Seca, and cea kT teowed and DOS ROM oo! ns, The ALPS
Fray | ASAT The end of 1 ASH, when
5 pr (Ae) ie
muchas was used
Salons cirelT lund revisions ure Kony To exsTt
1succeel The
The
used
wilh
The ‘wag bad’, us
1 SY C.Gs0uld
ALPS mechanism)
STi The |
only work
SYCCOI bau
fuwd becuse T
rin est
To The 1SUCCUS
| ALPS mednarison
SRawlnmies mechunisny
Reevisery 0€ The shorl toed Tal |
Tere) The | S41 A toad (Sumper
THY 2-Cl
BSTUUGS
Termed The S1SUIA CQ,
Volume 2, Number 6
The Camwok
KileboyTe. coms.
5 PEVISONS.
Tre Silene
isi
The other qre
Leh ae
sel Tothe | S4C
Each revs i
mechanism,
The. atTalocal” ook
10S V2.6, ond aT
anime bug
The base 1 S41
(S41 was wTrokeed
21 S41 we
sped The MC predin
ISULSX
This deve The “SXGY, Uses muny
components, DboumeaTanon suggests only APLS wedeaions
Miized, ATrough This drive uses a Tard | S41
od The. eom as wit is
Tors WwATTen 99
he 1 SUC
weiling a
ead, we i fe
Mais anomaly Usually can,
incompanbitily reports exsT, Researcly iT
align eAT problems as The cause
only seen in (S41
no prvblens, BOT
rea blames deve,
Loe These. nampa
med Thal, as o
ven WAT
e=x-1)
To our Knowledge, This dnve y
United States, We ‘wow Te
use some | sui
Is4ie AT nue,
was ins
Repals a 1531
mmechuniom However, The | S31
Rew secon The anSenitin wil hus un ALP
mechunine “Since The ALPS To Mawlironics swith occurred aT
The en} of | ABU, dees WiTh The ALPS mechanisny are very
care Sins,
s only prodveed oTTside. of The
Mil a big seller, ond 4
Miized Whe
is unkown, BUT
Ty
Evers Even
tre 0S purl
Rs
wou
a) dope a
wo
Isle
AtTWwax cram The 1 S41, This
4, drive, PLL SUL Cun
mechunisey be
villy slifed as an uparae
i SU
cosa Te
igh
iT enable” The sensor The User aul enable’ The i sensor by om WG
suppor WT aT alk The veluson 06 The
ine rentiae
“Trak | 2d YET onstver revision o€ The | S4|
senor eecess
BY DSDYYS-Ol Castuins The Trak |
The 1 S413 bard,
sense lose. Teaned
acomwnsated Two S Wo gle.
ound coTums a swigle sucker
COMMODORE WORLD
Volume 2, Number 6
To azomwnlute a 16 Kicozte ROM, Tho Tro Kiet
DOS seqmests were wiilTen on a single 0S ROM Sr
boaard, .
AW is Wleresiing To eile Thal The | SUL C ceoiT toxard wus
wn peoation betore The | S41 C was prol
| 88
5
1. Prwever, The
S ROM evel was o8l yal ahasted on The ciroiT board,
0 ~ paths pron To The lien of The 1 S41 C
WA, STandand | SUL Unis were shipped wilh This bord, boT
Will Tre od double QOM«. To alg Te Two ROM ST The sv
sxket on The credT baud, a smull pigg souk bound wus produce
| wwkel ¥ASROSU.
\hen The 1 S41 C it was Snully shipped, a new OOS
| ROW with speed and perSonmance enhuncemesls Was 2sTallet,
port umber 251 A6S-Cl. Then afer numer amplaals
deol ampanbilTy problems an} other annerns, Commndive created
a new ROW) revision, purT mumber 251 468-02. Rearding To
| dacummssTallon This range acauered on QeamberS; | 186.
With The Wiirohuation of This new ROM, Corwnkre Sinully
| coneded The Gel Thal The nGamnus ‘save wilh ceplae’ bus exsTed
| This bus 1 The,
cakes pveseAT 09 all Sees Sra The | SUC up To Ths revson
of The | S41 C, beanse The bug wos
re. Sal Seve:
The swe deve 1 SHC
We does nat imply The exsTene
STaTed above, The (S410 case wus To wawedite
| défereaQ side baud and SeZereAT mechanisms, soThs opdel ad
| have alos? anything inside.
of The
1 Su) -N
As The | S41 -W 3.eZered physaully <
Seves, The roi bod used in This 3 ered as Well, u
PUB B4CSTS, a asl redved bow pede | S44 | = bow
Aad, Willy The new ceeiT baad, a new revision of The | 6 Vicoge
DOS ROM used The [SGC wes created, por
251 463-03.
a The preven | SUI
1$70
Even TWh The version 0€ O05 enka nthe | S7C is 3.CThere
are Krowe imompalbilTes beTWween WT ad The fT ware wriTTen
So The | ST deve. Wis oT clear why The | S7C was pradced,
Some cepotls sugcesT Thal The 1571 de
Lor proton, ond The Comwadve | 22 v
delayed. SoThe 1 S70 wos developed us an wiferm andel Other
sures Cun Thal The wil wus desig
To Te 1571
iiToketon.
fe \was BT yal reudy
Jus.u ower ast alle
Which was a sav
\s
Aliwough a success€u) drive in Is own righ This deve suSfered
| some relubilly problems in early cevisims. Although nil anSiemed,
These unis muy hive The ALPS mechanisms, as ALPS 1 S41
mechunisms had relubilily problems us well
The | 571 was a kiudee,
Demis Surv, Racnite
The Canmore | 29's CP/M capa
The use of The Commnbre GY CP/M atirdge wi
Thwever, Exgnuering bus brawn Te Thal The CP/
™ cafTedge only worked with The eurlesT versions of The
Cammnbore G4, and would never work Wilh The wre amplex
C128, Work quickly began on WiTermul CP/™ supporl Sor The
128, and Then The auestion of a deve Sor The until was brouslaT
up. Managers niteed a hacked up STIS dre on an eng
desk and mauiewd. \Turs od The engewer hud ehSes The ust
To read an} rile MFM ented Jisks,
worked To Whi beave The | $71
Fprever The (S71 orgnnated, 7
Rimes sour
23
The (S71 and The
ws Sve. was Taken Son The
enrorved Te Mize.
Bowen, Sormrerly of
NL-20, sored vi
Tre ROM ak S71
AN S31 dewe ond The | S41
Tre <oppy Ssh Fred
Commie and wsTrumealal in The. develope 0€ The OS ond
Lor We CL DS ond COS, sTales Teal The origin
mn 06 The 1ST wast \SUL* 1551 = 1S,
fen BI C6S4-C3 ROM 9 Tre 1ST wus
OF ROW | A8G-| B-CF (sure
(S410). The rew
3 an The 1 SGC oiles, alewed bude
nk, ad wold
Bowen repels Thal only Two sucky doves exist, and Te.
be bus bureed od Ts iATemul power supply during is
aT The Wier | 186 Consumer Electors Show, by
Sunes eeporTs Wa
e had Tred
Ok was boned Seay The | 571, and enhurved
Th Commnbre anvest i
3 o GMD Se
“suosire whieh are unlike
_ develop Tre | S81 COS.
The | S81 deve is The S57 ot
meaning daa was boded WTo deve memory un eAfire Track oT
aT KE anither sefTor of The same Tuck was subsea uedTly
cea yesTed, The deve wold semyply copy dala Geom Terral menory
eather Tran acess The disk
n Me wiles Two sides of SOTrucks of 1C $1 D-bife
seiTors oFfo a dsk Twever, beause oTher Conmadre deves
Wile ake Alo The DOS
WS
e Canvnbore 657 was never
Sally developed, “Tre
ETWis drive werenT
, ipprecaTed oy Whe.
Comwenore gerertl public The DRIVE 205 cake was Aeveloped
by Demis Sarvs unter ote To Commodore, Perhaps The
esl wyvessive Seat of The wTernul dewe is Ts abitTyTe shure
Me With The COS CPU. Sarvs ni
peel of Vt
PU borne
appr, O
Comvoire 65 prsltTypes, Sew shore an eATal DOS ok
revisor as The ake was changed aloes daily.
Demis Suvs nites Thal The 32ST LP DOS ok was
vse To develop This UniT's DOS because TT was The mst sTuble.
of The DOS revisions produced by Cave,
vlan wid
specaizes 4 (S41
9
COMMODORE WORLD
EXPLORING
THE SERIAL BUS
KERNAL ROUTINES
PART 2: USING LOW-LEVEL SERIAL BUS KERNAL ROUTINES
In the last issue of Commodore World, we began
covering the Kernal routines used for serial bus
devie s by providing steps and an example
program showing how to use high-level routines
to perform file access,
Inthisinstallment, we'll learn how fileaccessis
accomplished using the low-level routines, We'll
use a program example that has a different
purpose than the example in the last issue, but as
you get to know these routines you should easily
beabletocreate programs that perform mostany
disk or file operations,
Opening a File
Using the low-level commands to open a
fileisa
tedious task, and one of the reasons Commodore
provided the Kernal OPEN routine. However,
ions when you really feel it’s
and that's why you're bothering to
there may be oc
necessary,
read this article,
So you're going to brave doing the open all by
yourself, but before you make that bigstep, you're
going to have to make some decisions. Most
importantly, you're going to have to decide if
you'll have to access this file with any of the
high-level Kernal routines, or from BASIC, If'so,
you'll have to set up information about the file in
the operating system’s file tables. These tables
consist of three sets of ten bytes that signify the
logical file numbers, device numbers, and
secondary addresses of all open files. The tables
by Doug Cottow
are found in different locations in the 64 and 128
operating systems, as indicated in the chart
located at the bottom of this page.
Whenan opened fileis recorded in these tables,
itis done by placing the appropriate information
atthesame index pointin each table
rexample,
ifa file with a logical file number of 2 is recorded
inthethird byte ofthe Logical File Number Table,
then the device number is found at the third byte
of the Device Number Table, and the secondary
addressis foundin the third byte ofth
Address Table.
econdary
This brings up the question, “Where should a
new entry go in the tables?” New entries are
created at the next unused file entry, starting at
the first byte of each table. So how do you know
which “slots” are used, and which are open? The
operating system hasa reserved variable location
for this, found at location $98 in both the 64 and
128 operating systems. Reading this location tells
you how many files are open, and at the same
time provides a usable index into the tables.
Now, let’s say we want to open a file on a
bles. Our example
I toasubroutine
device, and we plan touse the:
program doesthisby making,
we've created
alled ‘tent’, which you can refer to
while I describe the steps involved.
The first step required is to make sure there's
room in the tables for another entry (the tables
can only hold ten entries, so the Commodore OS
limits us to having ten files open at any given
C64/128 Operating System File Tables
Table Description
Logical File Number Table
Device Number Table
Secondary Address Table
Volume 2, Number 6
Commodore 64
$0259 - $0262
$0263 - $O26C
$026D - $0276
Commodore 128
$0362 - $036B
$036C - $0375
$0376 - $O37F
24
time.) Checking the value at $98 tosee ifit's ten or
greater will provide us with the info we need.
The next step is to make sure that the logical
file number we're using doesn’t already exist.
This can be accomplished via a small loop that
compares the file number we want to use with
aturall
ables are complet
each of the existing entries. } we can
skip this step ifthe yempty.
Once we're certain that the table has room,
and that our logical file number hasn't been used,
we can go ahead and and create our entries, using
the number of files open as an index for writing
into the tables. Notice that when we store the
secondary address in table, we must first OR it
with $60. This is the way table entries for
secondary addresses are expected to be stored,
, We're now ready to open the file itself,
‘The actual open is done by our ‘fopen’ routine,
which starts at the end of ‘tent’, and this also
serves as the entry point for opening files without
usingthe file table. First, we'll clearthe status and
tell the device to listen (using LISTN), then send
it the secondary address (via SECND), adjusting
it first by OR'ing it with $F0 to indicate that we
want to open a file,
‘The next step is to send the fileneame. If we
were opening a command channel, the name
might not be necessary, so our code checks to see
if the length of the name is zero. (The only time
you might use a filename when opening the
command channel would be to send a command
usingthe open, suchas you might dowith BASIC,
i.e, OPEN15,8,15,"10:"). If there is a filename to
be sent, then CIOUT is used to send each of the
individual bytes.
To complete the open operation, we tell the
device to stop listening via a call to UNLSN.
COMMODORE WORLD
Serial Bus Device Kernal Routine Reference Chart
Kernal Jump Table RAM Calling Parameters Returned Parameters
Routine Address Vector A Xx .Y A Xx .Y Status Pre-requisites
SECND $FF93 (65427) n/a SA+S$60' ~ 7 5 = cs ST LISTN
TKSA $FF96 (65430) n/a SA+$60' —~ ~ * = ST TALK
ACPTR SFFAS (65445) n/a ~ ~ ~ DATA + + ST TALK,TKSA
CIOUT SFFA8 (65448) n/a DATA ~ ~ +: + + ST LISTN,SECND
UNTLK SFFAB (65451) n/a ~ ~ ~ # 2 - ST (TALK,TKSA)
UNLSN SFFAE (65454) n/a ~ ~ ~ = < - ST (LISTN,SECND)
LISTN $FFB1 (65457) Wa DEV ~ ~ 2 y 5 ST CLEAR ST
TALK $FFB4 (65460) na DEV ~ ~ : * 5 ST CLEAR ST
READSS $FFB7 (65463) n/a 7 ~ ~ STATUS + + SsT* None
SETLFS SFFBA (65466) n/a LFN DEV SA + + + n/a None
SETNAM SFFBD (65469) nla FNLEN FNAL FNAH + + + na None
OPEN SFFCO (65472) $031A (794) ~ ~ ~ ERROR - = C SETLFS,SETNAM®
CLOSE $FFC3 (65475) $031C (796) LFN 2 ERROR . a Cc (OPEN (CLRCH))
CHKIN $FFC6 (65478) $031E (798) ~ LFN ~ ERROR e : Cc OPEN
CKOUT $FFC9 (65481) $0320 (800) = LFN ~ ERROR = = Cc OPEN
CLRCH S$FFCC (65484) $0322 (802) ~ ~ ~ 2 2 + n/a (CHKIN,CKOUT)
BASIN $FFCF (65487) $0324 (804) ~ ~ os DATA st + ST (OPEN,CHKIN)
BSOUT $FFD2 (65490) $0326 (806) DATA ~ ~ ERROR + AD ST (OPEN,CKOUT)
LOAD $FFD5 (65493) [$0330 (816)} LV' (SAL) (SAH) ERROR (EAL) (EAH) .C SETLFS,SETNAM®
SAVE SFFD8 (65496) [$0332 (818)] SAP®* EAL EAH ERROR : < .C SETLFS,SETNAM®
GETIN $FFE4 (65508) $032A (810) ~ ~ ~ DATA A e ST (OPEN,CHKIN)
CLALL $FFE7 (65511) _ $032C (812) ~ ~ ~ = : + n/a (CHKIN,CKOUT)
SPIN_SPOUT $FF47 (65351) n/a ~ 7 = 2 + + n/a Ce
CLOSE_ALL $FF68 (65384) na DEV ~ ~ - = = na None
SETBNK SFF68 (65384) n/a BA __FNBANK ~ + + + n/a None
Reference Chart Notes & Definitions
SYMBOL DEFINITIONS VARIABLE DEFINITIONS ACCUMULATOR ERROR CODES
~ No parameter required ne) = Processor Carry Flag $01 Too Many Files
Register is not preserved during ST STATUS byte ($90) $02 File Open
operation LFN Logical File Number $03 File Not Open
+ Register is preserved during SA Secondary Address $04 File Not Found
operation DEV Device Number $05 Device Not Present
BA = Bank for LOAD/SAVE/ $06 Not Input File
NOTES VERIFY (128 only) $07 Not Output File
1 Add $F0 to SA instead of $60 to LV LOAD/VERIFY Flag $08 Missing Filename
open file, SEO to close file SAP Starting Address Pointer $09 Illegal Device Number
2 STATUS byte (ST) is not cleared FNBANK = Bank where filename for $10 Illegal LOAD (past $FEFF) on 128
unless current device is 2 (RS-232) LOAD/SAVE/VERIFY is
3 SETBNK also required for 128 stored (128 only) STATUS BYTE VALUES
4 0 for LOAD (requires address in .X FNLEN = Length of filename in $01 Print Time-out
and .Y if SA=0, returns ending bytes (0 if no name is $02 Input Time-out
address in .X and .Y); non-zero for required for an $40 EOF (End Of File)
VERIFY (address not required) operation) $42 Read past EOF
5 Pointer to zero page location holding FNAL
starting address in low byte/high byte FNAH
= Filename Address Low $80 Device Not Present
Filename Address High
format SAL Starting Address Low FILE SECONDARY ADDRESSES
6 Clear .C (CLC) to set fast serial input, SAH = Starting Address High $00-01 Reserved for LOAD/SAVE
set .C (SEC) to select fast serial EAL = Ending Address Low $02-0E Input/Output Files
output EAH = Ending Address High SOF Command Channel
Volume 2, Number 6 25 COMMODORE WORLD
Closing Files
Whenever you're done using a file, it needs to be
closed. This is probably the easiest task of all,
unless you're using the file tables. Our example
program has routines for both situations. The
‘felose’ routine searches the logical file number
table for a match with the file number of the file
you're trying to close. If found, it checks to see if
itis the last entry in the table, Ifnot, it copies the
data from the last table entries over the data in
the table entry you're deleting. The final step is to
decrement the count of open files in $98.
The ‘felose’ routine drops down into the ‘clos’
routine, which
also the entry point for closing
files without using the file table:
's the status and tells the device to listen (via
LISTN). Next, OR's the secondary address of the
file to be closed with $E0, and sends this to the
devicevi ND. The final step istocall UNLS)
and the file is closed,
One warnin,
This routine
don’t close command channels
on a device that has other files open, as this will
cause ALL FIL!
S to be closed.
Reading Data
Getting bytes from an open file is rather simple
matter, First, clear the status and then call the
‘TALK routine to tell the device that it kon
the serial bus (it’s nice to be in charge of who can
talk!). Since we're accessing a file that’s already
open, we need to use the secondary address that
the filewas opened with, OR itwith §
it using TKSA.
Okay, that’s the preparation, and our talker is
ready to send d
havearoutine in the main program section called
60, and send
1. In our example program, we
‘read’. This opensa data file that we've previously
created with the program, reads the data from
the file, and dis;
you follow that section of code, you'll see that the
I by calling ACPTR, which returns one
that data on the sereen, If
datais rei
byte of data in the accumulator (.a).
e
Since our
ample program does a lot of error checking
(looking for the end offile as well as other errors),
we've ignored the fact that the data is in the
accumulator, and focus instead on checking the
status first. We can get away with this bee:
know a little trick. You see, both the 64 and 128
ACPTR routines use memory location $A4 to
store the data byte temporarily. So after we make
is valid, we get the byte from that
ase We
sure the di
location,
‘Tofinish this routine, we call UNTLK to tell the
device tostop talking after we get to theend ofthe
file. In our example, we also go ahead and close
the file, since we're done accessing it
Writing Data
While we've already covered writing data to the
drive in our discussion of opening files, there are
some differences involved in writing data to an
already open file. Our example program contains
aroutinewithin themain program segment called
. This routine opens a write file using our
‘tent’ subroutine.
Once the data file is open
simila
essing itis quite
r to the way we access read files, First, we
the status byte, then tell the device to listen
useing LISTN. Since we're about to access a file
that’salready open, wetake thesecondary address
it was opened with, OR it with $60, and send it
with a call to SECND,
The file is now ready to accept data, which we
clea
send using CLOUT. Once we've sent all the dat
we call UNLSN to stop the drive from listening,
And in the case of our example, we're done with
the file, so we close it.
Command Channel Access
The command channel
programs; it servesasa way tosend commands to
the drive, and it’s also used by the drive to inform
as two common uses in
us of errors. Our example program has routines
imake use of both of these features.
arly in the main segment of our example
program, we sendan “Initialize” command tothe
drive, We do this by setting some parameters,
and then calling the ‘esend’ subroutine. Sending
commands toa drive is no different than writing
data toa write file; we can, however, skip opening
the file, thus making the routine a bit shorter.
Likewise, when we read data from the
command channel to check for DOS errors, it’s
just like reading from a data file, And again, we
can skip the open. Our example program does
this using the ‘cerr’ subroutine,
Errors & Other Stuff
Throughout the example program, you'll see a
number of calls to the ‘serr’ and ‘cerr’ routines,
which deal with status and command channel
errors, respectively. There are also several other
subroutines used in combination with these to
make the program capable of detecting and
reporting errors. While all of these are integral to
proper error detection, it's also important to
follow how the program flow is affected when an
errorisdetected. When errors occuraftera LISTN,
the program must UNLSN the device as part of
aborting the routine, Likewise, an error detected
after TALK must causean UNTLK. And, ofcourse,
all open files have to be closed—if possible.
In addition to the error routines, there are a
couple of display routines used. The most
important of these is ‘primm’, which is a direct
copy of the print immediate Kernal routine that
residesin the 128, This allows printing of “in-line”
messages. Itcan also be omitted in 128 programs
by substituting calls to the Ke
There's no doubt that the routines provi
5 version.
led
here can be optimized. But hopefully they'll give
you a clearer picture of how Kernal low-level
ser %)
al bus access routines are used,
acptr = $ffa5 ; kernal serial char in
low level drive access example setlfs $£fba ; kernal set lfn, dn, sa
chrout S£fd2 ; kernal char out
sorg $2000 :
:0bj "llexample.o* } start of program
: variables start jmp main
1fn = $b8 } logical file number ; strings
dev = $ba ; device number t
sa = $b9 } secondary address iemd byt "i"
st = $90 } status byte wnam byt "testfile,s,w"
fnadr $bb ; filename address pointer rnam .byt “testfile,s,r"
fnlen = $b7 ; length of filename endstr .byt 0
latbl = $0259 } 1fn table ($0362 for 128) :
dntbl = $0263 ; dev# table ($036c for 128) ; main program
satbl = $026d } sa table ($0376 for 128) : ,
listn = $£fb1 : kernal listen main da #$01 lfn in .a
secnd = §f£93 ; kernal sa for listen Idx #508 dev in .x
unlsn = $ffae ; kernal unlisten ldy #502 sa in .y
ciout = $£ffa8 } kernal serial char out jsr setlfs and set
talk = $£fb4 ; kernal talk Hi
tksa = $££96 ; kernal sa for talk jsr primn ; print immediate
untlk = $£fab ; kernal untalk sbyt 147 } clear screen
Volume 2, Number 6 26 COMMODORE WORLD
[ sbyt “initializing drive" jsx unlsn jpn aren sevice!
“byt 13,0 jsr unk } unknown error
: jmp xit ; jump to end
; i low byte of address :
pet ees a Pts + okay, increment
ida ¢sicmd ; high byte of address cpx sien ; all chars sent?
sta fnadr+1 store it bne - i no, ‘get next ‘char
ai calculate length A
peste ar eceare Panevarovcienae + jsr unlsn ; stop listening
jer csend call send command routine cle } clear carry
bee + branch if no error ie >
jmp serr ; process status error xit bee + ; branch if no error
, jmp serr } process error
+ jsr cerr } check cmd channel error + jsr cerr ; Check drive error channel
bee + } status okay bee + ; status okay
jmp serr } process status error jmp serr } process error
7 + lda errflg ; check for drive error
+ ida errflg } check error beq endw ; exit write if no error
beq write } no error, branch jsr prnterr + print error
jsr prnterr ; print error i b eo
rts } end program endw jsr prim ; print immediate
: «byt "closing write file"
} write data file sbyt 13,0
write jer primm ; print immediate jsr fclose ; close file
«byt "opening write file" bee + ; branch if no error
sbyt 13,0 ; return, end of data jmp serr } process error
; + jsr cerr ; check for drive error
ida #<wnam + low byte of name address bee + } branch if no error
sta fnadr ; store it jmp serr ; process error
lda #>wnam ; high byte + lida errflg ; check for drive error
sta fnadr+1 } store it beq read ; skip to read if no error
lda #rnam-wnam ; calculate length jsr prnterr } print error
sta fnlen and store rts } abort
jsr tent } call send command routine p
; ; read/display data file
bee + ; branch if no error 7
jex serr i process status error read jsr primm ; print immediate
jmp endw i; skip to end sbyt “opening read file"
; «byt 13,0
+ jsr cerr ; check cmd channel error ;
bee + } status okay da #<rnam ; low byte of name
jsr serr ; process status error sta fnadr } store it
jmp endw } abort write ida #>xnam ; high byte of address
z sta fnadr+1 } store it
+ ida errflg ; get error number lda #endstr-rnam; calculate length
beq + branch if no error ata fnlen ; and store
jsr prnterr else print error jsr tent ; call send command routine
jmp endw } abort write :
; bec + ; branch if no error
+ lda #500 } always clear status jer serr } process status error
sta st + before listn jmp endr ; abort read
lda dev ; load .a with dev# ;
jsr listn } tell device to listen + jsr cerr ; check cmd channel error
bit st ; check status bee + ; status okay
bpl + } status okay, branch jsr serr } process status error
jsr nodevl i device not present jmp endr ; abort read
jmp endw + jump to end
i + lda errflg ; get drive error number
1 da sa ; load secondary address beq + ; branch if no error
ora #$60 + adjust for write jsr prnterr + else print it
jsr secnd } send sa for listen jmp endr ; abort read
lda st } load status :
bpl + } Status okay, continue + jsr prim ; print immediate
jsr nodev1 ; device not present «byt “reading data"
jmp endw ; jump to end sbyt 13,0
str -byt "sample data string" lda #00 ; always clear status
sbyt $04 ; a carriage return sta st ; before talk
slen . byt $00 ; end of data ida dev ; load .a with dev#
; jsr talk } tell device to talk
+ jsr primn ; print immediate bit st } check status
«byt "writing data" bpl + ; status okay, branch
sbyt 13,0 jsr nodevt ; device not present
jmp end } abort read
lda #slen-str ; calculate the length H
sta slen ; and store it + lda sa ; load secondary address
ldx #$00 ; clear .x ora #$60 j adjust for read
jsr tksa ; send sa for talk
- lda str,x ; get char from string lida st ; load status
jsx ciout j output it bpl rdbyt ; status okay, continue
ida st } get status jsr nodevt } device not present
beq + } no error, branch jmp endr ; jump to end
sta tmpst } save status = ida $a4 + get last byte received
Volume 2, Number 6 27 COMMODORE WORLD
jsr
jsr
ida
beq
cmp
beq
sta
jsr
jsr
jmp
+ ida
jsr
jsr
jsr
sbyt
byt
isr
bee
jmp
+ jer
bee
dmp
+ ida
beq
isr
rts
tent lda
beq
cmp
bne
jmp
A dda
1dx
- dex
bmi
cmp
bne
jmp
+ ldx
ida
sta
lda
sta
ida
ora
sta
inc
open file
Peon
lda
sta
Ida
jar
bit
bpl
jmp
open.
ora
jsr
ida
bpl
jmp
ida
beq
ldy
- lda
jsr
ida
beq
chrout
acptr
st
#840 ;
+
tmpst ;
untlk ;
unk
endr ;
Sad ;
chrout 7
untlk ‘
primm :
“closing read
13,0
fclose 3
+ 3
serr
cerr i
+ ;
serr ;
errflg :
prnterr F
make table entry
$98 ;
#50a ;
+
tmf 7
lin
$98
+
latbl,x
exists
$98
lin
latbl,x
dev
dntbl,x
sa
#560
satbl,x
$98
4$00
st
dev
listn
st
+
nodevl
sa
#S£0
secnd
st
opn
nodevl
fnlen
#500
(fnadr),y
ciout
st
+
Volume 2, Number 6
output to screen
get a byte
get status
status okay, branch
end of file?
yes, then branch
store status
untalk device
unknown error
jump to end
yes, get last byte
and print it
untalk device
print immediate
file*
close file
branch if no error
process error
check drive for error
check worked, branch
process error
check drive error
none, branch
print error
exit program
+ get number of open files
table empty, branch
compare to 10
7 mot 10, branch
error, too many files
desired lin in .a
open files in .x
decrement .x
no matches, branch
compare lfn to table
next compare
file exists
get open file index
get new 1fn
store lfn in lfn table
get new dev#
store dev# in dn table
get new sa
or sa with $60
store sa in sa table
increment # of open files
always clear status
before listn
load .a with dev#
tell device to listen
check status
okay, branch
device not present
load secondary address
adjust for open
send sa for listen
load status
okay, continue
device not present
get length of name
no name, skip ahead
zero out .y
get 1 char from name
output char to device
get status
okay, branch
28
jsr unisn ; unlisten device
ida #$ff ; indicate unknown error
sec set carry
rts 7 and exit
5 iny ; increment index
cpy fnlen ; all chars sent?
bne - no, get next char
+ jsr unisn yes, unlisten
cle clear carry
rts and exit
+ close file (in table)
fclose lda lfn get lfn
ldx $98 get number of files open
- dex dec to use as pointer
bmi clos none found, exit
cmp latbl,x ; check for match
bne - 7 no match, next
dec $98 + decrement file count
cpx $98 is entry last in table?
beq clos yes, branch
lidy $98 index to last entry
ida latbl,y move last lfn entry
sta latbl,x to empty slot
lda dntbl.y move last dev# entry
sta dntbl,x to empty slot
lda satbl,y ; move last sa entry
sta satbl,x to empty slot
3 close file
clos da #$00 ; always clear the status
sta st 7 before calling listn
lda dev + load .a with dev#
jsr listn 7 and call listn
bit st check status
bpl + ; okay, branch
jmp nodevi ; device not present
+ lda sa ; sa for file
ora #$e0 7 adjust sa for close
jsr secnd 3 send sa for listener
bit st check status
bpl + okay, branch
jmp nodevl ; device not present
+ jsr unisn unlisten device
cle ; clear carry
rts ; and exit
; set status error parameters
unk lda tmpst ? get status
and #$0f ; clear upper nibble
tax ; transfer to x
lda hex,x 7 get ascii value
sta unkst+1 ; store it
lda tmpst 7 get status
cle 7 clear carry
isr 7 shift right
isr 7 until upper
lsr 7 nibble becomes
lsr ; lower nibble
tax ; transfer to x
ida hex,x ; get ascii value
sta unkst } store it
lda #sff 7 unknown error
sec 7 set carry
rts 7 exit
hex «byt *0123456789abcdef’
time lda #$01 ; too many files
sec ; set carry
rts 7 exit
exists lda #$03 ; file exists
sec ; set carry
rts 7 exit
nodevt jsr untlk ; tell device to shut-up
jmp + ; skip unlisten
nodevl jsr unlsn ; stop device from listening
+ Ilda #$05 + device not present error
COMMODORE WORLD
—————
error and exit
set carry she j
sec ; = :
rts 7 exit os lda $a4 7; get last byte
: sta errbuf,x ; and store it
; display status error ; we
; : es A lda #$00 ; zero byte |
serr jsr primm sprint immediate ae ® ; increment index
wbyt "status error: sta errbuf,x ; and store it
sbyt 0
; > errbuf } get 1st byte of error
cmp #$01 1 is error too many files? er #$0£ ; convert to value
PH 2 See Teer palate sta errflg ; store it
jsx primm ah yes, pri asl ; multiply by 2 ey
vbyt "too many files" iply by 2 (x4)
‘byt 13,0 pe errelg ; fad de xs) ;
; ay. j ; multiply by 2 (x10)
+ cmp $03 ; is it file exists? ase heeaty iaaHeeeetn
pay Lees eperterampeatate lda errbuf+1 ; get 2nd byte
Dee cate = and #$0£ ; convert to value
wbyt "file exists ora errflg ; or in tens
: lence yay) sta errflg j and store
+ cmp #505 is it device not present? ; f
Sue ; no, then branch jsr untlk ; untalk device
jsr primn ; yes, print immediate cle 2 elear carry
wbyt “device not present" rts ; and exi
Jeet Oe } send command to drive
+ : own type? :
eee ; cee Mace eaR es csend lda $00 ; always clear the status
jsr primm + yes, print immediate sta st i before calling listn
‘byt “unknown ($” lda dev ; load .a with dev#
unkst byt $30,$30 jer listn i and call listn
sbyt *)" bit st } check status
‘byt 13,0 bpl + 7 okay, branch
; jmp nodev1 ; device not present
+ rts 7 exit $
z + lda #$6£ ; sa for command channel
tmpst .byt $00 ; used for temporary status jsr secnd ; send sa for listener
; bit st + check status
} print disk command channel error bpl + ; okay, branch
Fi jmp nogev1 ; device not present
prnterr ldx #$00 ; zero index ;
- lda errbuf,x ; get from error buffer + ldy #§00 ; clear .y
beq + ; branch if end of string = lda (fnadr),y ; get char from command
jsr chrout } output character jsr ciout 7 output it
inx 7 increment index ida st ; get status
bne - } get next character bne + ; error, branch
+ rts i exit iny ; okay, increment .x
; cpy fnlen ; all chars sent?
errbuf buf 256 ; buffer for error msg bne - } no, get next char
endbuf .byt $00 ; arbitrary end of buffer 7
errflg byt $00 } error value + jsr unisn ; stop listening
? cle
7 read command channel rts
cerr da #$00 ; always clear the status ; print immediate routine
sta st ; before calling talk i
lda dev 7 load .a with dev# primm pha save .a on stack
jsr talk + and call talk txa transfer .x to .a
bit st i check status pha ; save ,x on stack
bpl + + okay, branch tya transfer .y to .a
jmp nodevt ; device not present pha save .y on stack
Fi ldy #$00 zero index
+ lda #S6f ; sa for command channel - tsx get stack pointer in .x
dex thea 1 send ga for talker inc $0104,x increment return address
t st ; check status bne + ; branch if result not zero
bpl + i okay, branch ine $0105,x incr high byte of address
jmp nodeyt + device not present 1
; f + lda $0104, ; get low address
+ idx #0 7 zero index sta $bb 7 save in zero page
- jsr acptr ; get a byte lda $0105,x 7 get high address
da st } get status sta $be ; save in zero page
ne sd i status bad) branch lda ($bb),y } get character via pointer
la Sa j get last char in .a beq + ; branch if zero
sta errbuf,x ; store in buffer jsr chrout ; else output character
inx ; increment index bee - ; get next character
ne - + get next char 7
A , + pla i get .y from stack
+ cmp #$40 ; end of file? tay ; transfer to vy
beq + ; yes, then branch pla ; get .x from stack
: tax ; transfer to .x
sta tmpst # mo, store st pla # get .a from stack
jsr untlk } tell drive to shut-up rts ; exit
jsr unk } unknown status ?
Sec } set carry to indicate send i end assembly
&
Volume 2, Number 6 29 COMMODORE WORLD
+ CMD
RAMIGHK Power-Backed RAM Disk
RAMLink Base Model (OMB, No RAMCard).... $149.00 ass JiffyDOS
RAMLink w/t MB RAMCard $229.00
Sees scsi Hard Disk Drives:
HD-40, 42 MB (Limited Supply)...
HO-340, 340 MB (Special Edition)
HD-500, 500+ MB (Special Edition) RAMLink w/4 MB RAMCard *
HD-1000, 1 GB (Special Edition) . RAMCard ATC Option/Kit STM 99922 Increase Speed Up to 1500% while
HD-2000, 2 GB (Special Edition) . RAMLink Battery Back-up (Optional) $24.95 retaining 100% compatibility
Parallel Cable (RAMLink to HD) $14.95. o tua i,
Feo (600K ae oe Speeds up Loading, Saving, Veritying, Formatting and Reading/
F400 WOK Teno ie em Writing of Program, Sequential, User and Relative files unlike
FD Real-Time-Glock Oplion'ki,.. '$20.001829.00 SID Symphony Stored Cartridge $1495 Cartridges which only speed up Loading and Saving of PRG files
‘Box of 10, High Density Disks (1.6MB) $14.95 Sonus 64 Sequencer, MIDI Interface. Cables... $99.00 © Built-
in DOS Wedge plus 17 additional features including file
Copier, text dump, printer toggle, and redefinable function keys
make using your computer easier and more convenient
Box of 10, Enhanced Density Disks (3.2 MB) ... $29.00 Sonus 128 Soquencer, MIDI intertace, Cables. $99.00
anguages & Compilers
Speci er 5 BASIC
fi nc rrhommbaakanade ea ar ye ae 33500 * ROM upgrade installs easily into most computers and disk drives,
“IKOOS G-128/128-0 Systom $59.9. Blitz! 64 Compiler (Skyios) $2000 Supports C-64, 64C, SX-64, C-128, 128-D, 1541, 1541C,
Additional Drive ROM’ $24.95 Lor 128 Conpeiet (Skyles) $90.00 1541-11,1571, 1581 and more.
MiscoNAneour Hardware cmeinee reed a
80-column Monitors (Roturb) CALL Fortran 64 (Abacus) $17.00 D
Aorta ‘3-Way User Pont Expander 1 $30,00 Pascal 64 (Abacus) “ — ae $17.00
iprotek User Port Extension Cable $19.00 Powor C 64 (Spinnaker) $14.00
ce 4:6 Computor (Ratu, wD) See ue Productivity | 3.2 and 1.6 MB 3.5" Floppy Drives ——
64, C-64G Power Supply (Repairabie) 9.00 : i
6-128 Power Supply (Repaiablo) CALL. Cadpak 6 (Abacus) $2200 The FD-2000.andFD-4000disk drives utiize [ites
Gannon BJ-200ex Bubbla Jet Printer $260.00, Cadoak 128 (Abacus) $2500 today’s latest 3.5 inch disk drive technology.
‘Cannon BJC-4100 Color Bubble Jet Printor CALL Giarpst sous) x }
‘Commodore 1541 Disk Drives (NEW, w/JO) ..... $119.00 Chartpak 128 (Abacus) $25.00 ER. 2000 8 support G00ks (1681 pees ae
: 1.6 MB (High Density) formats, while the
‘Commodore 1541 Disk Drives (Roturt, w/JO) 75.00 | Paint v1.5 (128, 80-cot, 64% VOC) (Living Proof) $39.00 bs
Commocoe tats Dik Orca thet wal) Seuo [Port vt 54 (128, edeat,exk Voc} ny Peet) .$23.0 FD-4000 also offers support for the 3.2 MB (Enhanced Density)
Gommodore 1571 Disk Dive (our, w/ JO)... $99.00 Outagoous Pages (ates included) $1900 disk format. Fast and reliable, they support 1541, 1571 and 1581
Coromadors 16802:40-cokne Moriior (Relurh) - 109,00 , SRG0® atiote Krmeger te style partitions, Native Mode partitioning and can actually read and
CMD EX2+1 3-Port Cartridge Port Ext Pocket Writer 1 (64) Digital Sol.) ers o rv
EMD EXS & Pon Carindge Pon Cxpendoy $2.88, Pocket Witor 2 (64/128) (Digtal Sol) $65.00 Write 1581 disks. FD’s feature built-in JiffyOOS, SWAP button and
CMD Gamepad/Joystick Controller $24.95 Pocket Writer 3 (64 or 128) (Digital Sol.) $70.00 optional Real Time Clock. High capacity, speed and compatibility
CHD GeoCabie 1 Print Cable 6/18... $29,034.09 Pocket Piannor 2 or Pocket Fi 2 (Digtal Sol) $35.00 make the FD right for every application, including GEOS.
GMD SmartMouse (1351 Compatible Mouse) .. $49.5 PoworPlan 64 (Abacus) $16.00
CMD SmartTrack (1351 Compatible Trackball)... $69.95 RUN Productivity Pak |, Il, or Ill (Specify) $15.00
Monitor Cables. CALL. RUN Super Starter Pak 1541 or 1581 $20.00 RAMiink
MW-350 Printer Interface (OK/8K Butter) $49.00'S60.00 * jeter
Panasonic KXP-1180 Spin Printer $is0.n0 SuverScr G4 (Precsan) $20.00 Power-Backed Expandable REU
$229.00 Hs ~
‘Samsung SP-2417 24-pin Color Printer .......$319,00 Suberbase 64 Version 3.01 (Precision) $35.00 The fastest possible form of storage,
‘Superbase 128 Version 3.01 (Precision) ...» $95.00 RAMLink provides instant access to files
Big Blue Reader V4. 10 (SOGWAP) S900 Pavoct Tax Ot (re Bs Upgrade) Se and retains data while your computer is
ig Blue Reader " :
CMD Utilities so $28.95 Pertect Tax 128 (Free "95 Upgrade) «nnn $79.00 aT belies off. Easy to i Hee expandae
JittyMON-64 (ML Monitor) " $19.95 TWS 64 wiSpeller (Busy Bee) * $23.00 to 16 MB, RAMLink utilizes the same powerful operating sy:
helGomnpression Kat's (Mad Man) $0.00: TS 128 wiSpeter {eey Bee), $99.00 found in CMD Hard Drives. Unlike Commodore REU's which are
pasa £225 $500 compatible with less than 1% of commercial software, RAMLnk
Collett Usities (Handy Geos Utitias) $19.95 Galecommuntcatio supports more than 80% of the commercial titles. RAMLink also
Presale titsed $22.00 prota Minder C28 (Ce a i Seno vl fers builtin diffyDOS Kemal, SWAP ealuras reset baton, scab
Dweezils Greatest Hits (NowTecis2 Stamp Labei?28) protek MinModem C (C= ready. : 4 spb paee eh ne
FONTPACK Plus “* $25.00 Aprotok Modem adapter (C= to Ext. PC Modem) $20.00 disable switch, pass-thru portand Ri pt dabilit d compatibility
gateWay 64 or 128 (Specity Version) $29.95 BOCA 2400 Baud Modem 49.00 RAMLink offers maximum speed, expandability and comp:
geoBASIC : cn» $20,008 BOGA 2400 w'Switink and Cable -.$99.00 with all types of software and hardware including GEOS.
geoCalc 64/128 '$40.00/$45.00 BOCA 14.4K bps FaxModem $129.00
geoChart $29.00 BOCA 14.4K w/SwiftLink & Cable $159.00
COAX ... BOCA V.34 28.8K bps FaxModem $219.00 HD ry
GooFile 64/128 BOCA V4 wink Catto $219.00 seas
MakoBoot (Makes Bootable copies) yalogue
Sechrogrnoner $45.00 SpoodTerm (Abacks) S300 SCSI Hard Drive for the C-6:
gooPublish 40,00 eSwiffLink RS-232 Cartridge (Up to 38.4K baud) .. $39.95 4D Series Hard Drives are available in
GEOS 64 v2.0 $44.00 SwiftLink Modem C: (089-0825) $9.95 capacities up to 1 GB, are fully partitionable,
GEOS 126 v2.0 $49.00
qeoSFIELL v2.2 (CL tor GEOS) £200 ST ang can emulate 1541, 1571, & 1581 disks
‘Nomino $17.00 While Native partitions utilize MS-DOS-style
Intemational FONTPACK. $25.00 1300 While Native partitio " .
Pertoct Prot LO for GEOS (Laser-ike output)... $4.98 PANS re $is00 subdirectories, HD's connect easily to the serial bus or parallel via
BUN Gece ora ae a : $i000 RAMLink. Includes built-in JiffYDOS, SWAP feature and RTC. HD's
pS Ta seu 027 the Lito of Prehistoric Man $1909 offer superior compalty with most commercial software including
eo Hee $1900 BS, Productivity and GEOS, And with ne pricing, HD Sores cives
Anatomy of tho 1581 feavenbound 1 Ee na oten he ;
Basie Compiler Design forthe C64 $1200 la ot Ono $1000 offer the lowest cost per megaby y
6-68 Sconce & Engmoonng ‘sor Squa 0 -
C128 Computer Aged Design $1200 Lions of he Universo $1995 Shipping and Handling Charges
C128 BASIC Training Guido $12.00 Mainframe $1300 sess a see 3 AE
Cassotte Book tor 64 and Vie 20 $1200 Monaco : 5.00 se ne chart bolow to maten yous odor subatlutn Your ship
‘Commodore 64 Tricks and Tips $12.00 Navy Seal Sinon Continental United States.
GEOS Programmers Reference Guide $35.00 Rings of Medusa pte 13
Graphics Book for the C-64 .....0 $12.00 RUN C128 Funpak smears $10.00 Order Subtotal Ground | Day | Day | HI,PR |Canada
Fithikors Guid to GEOS $3500 RUN Be Gamo ee a sm | aw [srm| sem] sm
Idoas for Use on Your C-64 ate of
Prive Book rt Cod Se ee Cael soos $1800 Epopamnon | ssem [soon | ssn | sv40n| $700
Simba erst $16.95 The The Stooges $1000 [couse | samo | s1000| soo samo |e
Supra The Bock $15.00 Te Brak Tone 318% [moostenoo | samo [sen | seo | s19e0 | 2c
Ene 2800 Wes aC 3702 [racosamon | som [sven sre] ro | soem | cn
: Wings of ico = ae
papers 2 $199.00 Waarary 5: Hoar ofthe Maaiatiom “$2400 [Seononsrwona | sisoo | sono | sox00 | s2700 | $2500 | cat
$0000. szo00 cal
UPS C.0.D. add $5.00 (US/PR only)
Policies: CMD accepts: Major Credit Cards, Money Orders, COD and Personal Checks,
WE ACCEPT ALL MAJOR
jal “NY “CREDIT CARDS =e
Porsonal Checks aro hold 3 weeks. Customer is responsible for shipping charges on
7 merchandise
Inc. Phusale Mostitems are stock, contact CMD for lm dalivory. Returns fr merch
Creative Mlcro|Bestons. in ctedit only within 30 days with prior authorization, Credits are less shipping, handling,
P.O. Box 646 Info: (413) 525-0023 axes, customs, duties, and a 10% restocking charge. No refunds or credits on opened
East Longmeadow, MA 01028 Fax: (413) 525-0147 jare. All prices and specifications aro subject to change without notice.
Topay's Most Apvancep Mass StoracE
Devices Just Became More ArrorDABLe
FD-2000 Drive Specifications
Amazing 1,6 MB capacity, plus reads & writes 1581) disks
* Upto 20% faster than a 1581 on'stook computers, and
Up to 1500% faster on JiffyDOS-equipped systems
* Emulates 1541/71/81 disk formats for better compatibility,
plus CMD Native partitions for greater flexibility
Configurable as devices 8 through 15, plus front panel
SWAP buttonifor instant device 8 or 9 selection
Optional Real-Time Clock (RTC) stamps time and date
on all files and automatically sets GEOS clock
* Reads, Writes & Formats MS-DOS diskettes Using Big
Blue Reader utility program (available separately)
To Order Yours, Call 1-800-638-3263
=,
our? 1599
Optional Real-Time Glock (RTC) add 520%
This offer valid only in U;S, and Ganada through December 31,
1995, May not be combined with any other offers. Prices do not
include shipping and handling, See our main advertisement on the
Opposite page for shipping prices and policies,
If you thought the HD-40 was
affordable before, just look at this...
Recently, during one of our routine searches for hard disk
drives, we were offered a significant number of 40 MB
Connerand Quantum SCSI hard disk drives at a price so low
that we just couldn't refuse.
Additionally, were offered some
superb pricing on the larger
Hard Drives. Solow, infact,
that we're offering the
HD-340 at a price
nearly $1,500.00
ChAD
lower than the original HD-200 back in 1990. If you've ever
considered adding a CMD HD Series hard drive to your
system, now is the time to do it! These outstanding prices
will only last as long as our supply of these specially priced
drives, So don't hesitate—add the power and flexibility of a
CMD hard drive to your system today!
CMD HD-40 JUST $249”
HD-340 340 Megabytes $349%
HD-500 540 Megabytes $499
HD-1000 1 Gigabyte $599
HD-2000 2 Gigabytes $999
Prices do not include shipping and handling. See our main
advertisement on the opposite page for shipping prices and policies.
Creative Micro Desicns, INC.
Fontigus 128 v2.0: "A Professional 80
Column Character Editor for the
Commodore 128 and 128D", $29.95
Jrom PHD Software Systems, PO Box
23, Moville, lowa 51039-0023.
Character sets give programs their
personality and style, for the shape
of lettersand graphiccharacters can
have an impact on how the program
is perceived. Any program that has
text uses character sets. Some use
the set which is in the kernal ROM;
others usesets specially designed for
the program. Game programs use
character sets fora different purpose:
for the graphics you see on screen
and in the background of
Depending on the program used,
editing character sets could be a
tedious process, but Fontigus 128,
an 80 column character editor, has
features that make changing
multiple character sets of any size
quick and easy, One of my favorite
features is the ability to have up to
seven character sets in memory at
thesame time. Each set can beedited
and saved individually, The usercan
cut and paste ranges or individual
characters from one set to another,
My second favorite feature is a
“global” mode that lets you select
multiple characters to change
characteristics ofthemallatthesame
time. For instance, ifT wanted all the
lowercase lettersinacharacter set to
ame.
be shifted down a row, I can change
them all at once instead of editing
each individually. This isn’t found
in most other character editors.
‘The documentation for Fontigus,
4 14 page spiral booklet, explains the
difference between the upper case/
Volume 2, Number 6
FONTIGUS
graphicsset, thelowercasealphabetic
set, and how each are used, Each
function of the program and
commands for e:
ch mode are
ibed in detail. A command
reference and indexarealsoincluded.
After loading Fontigus, the main
screen appears with both the upper
and lower case portions of the CBM
ROM character sets displayed, and
a dividing line to show which set is
which. Most of the commands are
shown on the screen to remind the
user of what's available.
‘The program willloadanyfileasa
character set regardless ofits name.
It can be interesting to load a non-
character set into an editor just to
des
see the results. Usually it’s not very
pretty or useful, but it shows how
the editor manages unusual
“character sets”. With other editors,
when I've loaded a character set that
used different positions for the
characters than what the editor was,
ny helpful text on the
screen turned into a mess, making it
hard to read what keys to use for the
different functions. Fontigus deals
with this probleminacoupleofways.
expectin,
Since it uses the lower
alphanumericset foritstext, theuser
can either swap the upperand lower
esetswhileeditingandthen swap
them back before saving, or the user
an press the “0” key to temporarily
restore the display using the CBM
ROM character set instead of the
one being edited.
The character the cursor is on is
displayed in a grid on the main
screen. Alongside this, the row byte
values are shown, as wellas the ASCIL
(Petascii) value of the character, its
case
128
screen code value, and whether it’s
from the upper or lower case set.
Therowbytevalues forthe character
i jul feature for programmers,
but I think itwould be more useful if
e them to disk
as data statements for use in BASIC
it were possible to s:
programs. Underneath the character
grid, the character is displayed in
the 16 colors of the C128, in under
lined video, reversed video, and the
character in the same position ofthe
alternate character set.
For editing, Fontigus shifts to a
different screen with the editing
32
commands shown. The character
beingeditedis displayedin differing
formats such as normal, inverted,
flipped, or with its quadrants
exchanged, so you have a visual
reference of the effects of these
options. Using a single command,
characters can be mirrored left or
right, flipped, inverted or rotated.
They can also be shifted by line or
row, both vertically or horizontally.
Fontigus can save the lower,
upper, or both character sets
together, and also prompts whether
to save them in short or long form
(with or without null zero padding).
‘This is a good feature, as I've used
other character editors which don’t
offer any choices about how the sets
are saved.
There is a good directory viewer
showing two columns of files at a
time with a pause between multiple
screens. It would be nice if the
character sets could be loaded while
viewing this directory. However, the
user has to type the name of the set
without this luxury. Fontigus
supports DOS commands, but you
can only send one command at a
timeandit prompts forthediskdrive
number each time. The author
indicated he would improve this in
the next version,
If you've been looking for an 80
column character editor, Fontigus
128 offers extremely powerful
features. Projects | started with other
editors, but putoffdueto difficulties,
were easily completed using
Fontigus. In the course of a couple
days, ledited over 200 character sets
hout realizing it.
- Gaelyne R, Moranec
COMMODORE WORLD
TURBO ASSEMBLER
Turbo Assembler; £9.95 plus £1.00
shipping. Turbo Crass Assembler;
£19.95 plus £2.00 shipping. Available
from Electric Boys Entertainment
Software, 2A Woollaston Road,
Harringay, London N41SE; Phone and
Fax: 0181-348-4916.
A friend said to me the other day “I
didn’t know you still used a
Commodore 64 computer. What do
you dowith it besides useitasa great
big calculator?” He chuckled at the
laststatement, but was quieted when
linformed him that I can utilize the
Internet, send and receive faxes,
create publications, balance my
checkbook, catalog my belonging:
and play better games than the kids
down the block with their Nintendo,
My friend was stunned. He wanted
to know how I could accomplish so
much with so little.
You and I know it is the work of
talented programmers. Howevei
behind each talented programmer
is a set of useful tools for the job, In
the case of machine languag
programming, Iknowmany talented
programmers that use the following
tool: The Turbo Assembler machine
language assembler.
Turbo Assembler is an assembly
language development system that
runs on the Commodore 64 or 128,
[twill create executables suitable for
any Commodore platform, and the
language is similar to other
assemblers, so someone can migrate
from another assembler to this one
without much trouble. The
introduction quote sums up the
purpose of this assembler: “After
many years of honing and
integrating, Turbo Assembler is
finally available for use by people of
all levels of programming ability.”
‘The product comes on a 1541
formatted disk, and contains
separate versions of the assembler
for the C64 and the C128 (in C64
mode). The two versionsaresimilar,
but the C128 version will take
advantage of the 2 MHz speed of the
Volume 2, Number 6
128 CPU during assembly. In
addition, the disk contains a C64
and C128 version of the assembler
designed for cross-assembling.
Turboisanintegrated assembler.
The program is loaded and started
with a SYS 36864, which brings the
user to the editor. In both versions.
of the assembler, the screen is 40
column and does not scroll side to
side, so you always see the entire
source code line on screen. The full
complement of assembler opcodes
are supported, as are pseudo
opcodes like BYTE, .WORD, and
-TEXT. Labels and the #> and #<
ators are supported, as is
ope
mathematical expressions as
arguments for opcodes. The full
complement ofhexadecimal, binary
and decimal values are permitted
forassignmentsand arguments, and
the familiar *;” character signifies
comments. On the surface, the
assembler seems just “normal”,
After the program is started, it
popsinto theeditorwithastatus bar
at the bottom of the screen. Along
with row and column position
information, the line indicates
whether the insert character mode
isonoroffandhow much memoryis
left in the source code buffer.
Command mode is entered by
hitting the back arrow key, which
enables access to the rich set of
commands. Among the commands
available are: assemble to disk or
memory, load and save, block
editing commands, — simple
arithmetic aids, memory dumps to
source codesand memory ills. More
esoteric commands include ones to
change the color scheme, insert a
row of dashes as a comment line,
and redefine the function keys.
Itried compiling a small program
with the assembler and noted tha
the integrated editor attempts to
catch mistakes while you are
enteringa line ofcode. Iflenteredan
illegal opcode or used the wrong
addressing mode, the editor flagged
the line as illegal by changing its
color and noting the error on the
tusline. Assembling my program
was but a keystroke away, and the
program could be run immediately,
After completion of the program,
the assembler can be re entered by
typing sys 36864,
Inordertomaximize performance
and spac
source code on disk in a proprietary
Turbo Assembler stores
format. However, for those people
wishing to use existing source code
file or wanting to save full listings of
source, the editor has the option of
reading or writing a PETSCH source
code file. For the large software
developer, one of the editors
commands will save a copy of the
labels and locations to a separate
file, useful for multiple file source
33
code development. But best of all,
the assembly time is quick; further
speeded up by the blanking of the
screen during assembly,
Although the copy of the
assembler used for this review has
the cross-assembly software, the
required machine to machine cable
was notavailable,
not tested. Nonetheless, the process
is very straightforward. Load the
assembler on one machine, while
loading the small loader program
ontheothermachine, Editthe source
code in the editor, and assemble as
usual. When the program is started,
the results will show up on the
remote machine. This alleviates the
problems associated with having an
error in the program under test
the development
this feature was,
destroying
environment.
fter using the assembler for
many samples, learned about many
ofits features. [thasimpressive parts,
but unfortunately suffers fromsome
major limitation: 'y assembler
has some limits, but these seem a bit
constraining:
The assembler allows labels and
function names to be used in source
code, which is good, but each name
must be in lowercase. Many
developers use mixed case to
improve readability, while some
definitions, like TRUE and FALSE,
are sometimes in all caps to
distinguish them. The editor only
allows 40 column lines. This seems
adequate at first, and it helpsallowa
programmer tosee theentirelineon
screen at once, but on-th
comments can all too quickly reach
ine
the 40th column. The manual that
accompanies the software is sparse
at only 21 pages. While this won't
affect intermediate to advanced
programmers who have used an
assemblerbefore, thebeginninguser
will find the going rough, and even
experienced users will have to
experimentwith the more advanced
editor commands. The assembler
does not support any type of file
COMMODORE WORLD
includes or multiple file assembles,
The programmer can manually
assemble different files and
concatenate them, buttheassembler
won't automate this process. This
becomesaproblemwhen yourealize
that the under
development must fit between
$080 10 S8FEA,
The tone of the manual suggests
at this assembler is ideally suited
to demonstration or “demo” code
development, which could be true. |
see the progra
source code
mas providinga good
assembler for testing small pieces of
code or subroutines. The beginning
user will like the error detecting
editor, as well as the integration
between the the
assembler, if they can cope with the
user manual, After using the
assembler for a few days, a few nit-
picky items cropped up that should
be noted. Some are just mere
oversights, but any serious developer
knows even the smallest problem
with the tool can make the proc
seem longer and more frustrating.
editor and
Variables and labels can only be
15 characters in length. The editor
is nice enough to note this as it
occurs, butsome programmers may
find this a limitation. The editor
includes a nice feature to allow the
cursor to automatically tab to the
10th position of an inserted line,
place opcodes at that position, and
put labels at the far left, making the
code more readable. However, 1
ange the position
to anything other than 10.
There is no native C128 version,
Being a rather staunch C64
foundnowaytoe
developer, it doesn’t bother me that
much, but C128 programmers will
likely find the 40 column screen and
lack of support for the extra memory
in the C128 a significant limitation,
Mier using the editor, L exited out of
the editor to BASIC, only to find my
cursor was invisible. Maybe it’s just
me, but I couldn't get the assembler
to allow reads or writes to any drive
besides device 8. Surely a command
exists to change the data drive, but
the usual disk commands didn't
work, and the manual didn't offer
any suggestions either,
Some of these problems can be
corrected by a new release, while
others could probably be fixed by
updating the documentation,
Nonetheless, some may find these
small oversights to be extremely
annoying.
‘Turbo Assembleris an interesting
product. The version that comes on
disk contains regular and cross-
assembler versions of the assembler,
butthemanualimplies thata version
whi
lows macro definitions and
a version which allows an REU to be
used as extra RAM for program
development both exist. Yet, these
two capabilities are not present on
the version supplied. In addition,
the initial quote claims that the
product has underwent “years of ...
integration...", but these two
innovations are not in the product,
One can only guess how useful these
two fi
ures are.
My recommendation is that,
while Turbo Assembler seems li
ea
product with promise, softy
developers looking for an assembler
should buy this product with some
hesitation. Some people will find its
limit
serious developers will find the
product lacking in support for large
projects. Ontheotherhand, the ease
of using the product makes it ideal
forsmall projects or prototypework,
and the ability to cross assembler
cansave valuable timein the software
development cycle. Caveat Emptor!
Jim Brain
ions a non-issue, but some
Winter Clean-u
This year at CMD, we neglected our Spring
cleaning house and giving you some great deals! Call our order
line at 1-800-638-3263 now; product quantities are limited!
* = Games 64 + = Book 64
Sale! + =Games 128 4 = Book 128
+ = Productivityo4 A = Productivity 128
leaning. Now we're
0 = Printer
£ = Productivity 64/128 «
¥=Manual (Computer)
Mise, Hardware
* = Drives
Manual (Drive)
"
+ Fini Book of
* Hacker
* Hadhall
fu
138
+ Acgot Aves
* Adare Construction Set
* Alice in Woestland
* cade Mepaits- Vo. * Killed
* cho * Right Game
* Anton It * Kronis Ri
* Artin * Lave R
4 Normandy + 1L0G0 Work
Hexen & Chis KC
* Bu ay
4+ C468; Ging the Moff
+ Hands on BASIC forthe C-64
Odes Scenery Dish
* Kenaedy Appr
Do
ie Desk |» Type an File
Mail Onder Monsiety
ual Spel
rogram fore Hor * Movie Mo
Gubler * Murer Pay 4
* Ocean Range
* Clow Curie * Omega
* (lu Maser Detatve | Ovni
* Comics * Operation Wall
+ Comma 64 Garey Book 2 * Outen
+ Comms 64 Gane Hook * Phamasie
ia Co ¥ Simons BASIC Carndge
* Shy Fox
* Slariok "The Promethean Prophesy
the Unive
+t The Hlectronie Checkbook
+ The Filer
+ The Hacks
Thel
He ith
The Money Manager
* The Masi
+ The Plurner
* The Seven Cities of (i
* The Shadows af Mondor
* The Slug
* The Train
The Wi
4 The Wie
+ Things todo with your 68
* Ticket to Wshingto, DC
* Covnidown to Shutdown Primed Word & Cle 6
* Cut & Pave Project Space Station
* Defender of he Cow Raid Over Moscow Advanced Dang
* Dela Drawing Care * Renwgale Dungson Mat
* Dragon Wars * Rowin’ Ton Canidee * Advanced Dungeons & Dragons
* Drags Lair * Sago lt of Radiance
+ Elen * Saool Tale ay Krug
‘ * Serve & Vly * Buds Tale Il Thi of Fate
+The
{The Essential €
* Badge Make
ACIS BASIC
+ (64: Graphs & Sound
Programming
* Carer Force - Santa Cru, Midway
* Carer Force 3 Coral Sea
* Caters at War 1941 1948
* Chuck Yeage's Advance Plight
Uhm 1¥
1M
1Sd1 Ma
ISH Maw!
estion Vo.
* Decision in the Dos
«Fig Simulator & FSIL82 New ‘ISHIC Manual
Aventures 1571Manul
‘ BASIC | Tutorial
* Flight Simaltor I-64 C128 Mana
* Gunship C1280 Mana
* Hunt fr Re Oster VCHIManal
+ Hsraed Guid he C6 Cent Library
* Indiana Jones» The Lot Ki Cipanc
* Jack Nicholas Greate! 18 bok DataMana
"ET 64 Flee Syern 2
+ JET 82 New Challeng Font Maser It
ena A FootMaver 126
+ Kids and the Commodore 64 Mane
* PanuerJAGD MI Mouse
PHM Pegasus Navarone
+ Programming the (6 Paperback Filer
i it VVICIOM,
Red S Wont 128
* Sint Service
* Sloe! Thunder Tuah Simulator
+ CO4Pr
wamodore 6 Users Guide
128 User Guide
4 The Offical Book forthe C128
Aprspn Catidge Pot Expander
‘Partner 135 Canridge
APocket Writer (28
+ Prin Shop
‘4 Sylvia Porter's Personal Fisaace
Sylvia Porter's Pervonal Finance
Vassar Cantidge
3 WordWrtert28
1128 Programmers Guide
0 CBM 152
4 a Ho
0k
MPS 801
MPS 803
HCD SIS
4 Enhanoer 2000
Light Pen 170
Ligh Pen 184C
Port Eapander
#19D-2 Accloraor Plas
$ lotus GT
0 MPS 1280
Okidata 120
Guide
All software tested and repackaged. All disk drives tested. All other hardware untested but in good condition. All products sold as is. $15.00 minimum order in effect |
| aed
Volume 2, Number 6
34
COMMODORE WORLD
AMIGA
Repairs * Upgrades ¢ Sales
Factory Trained Techs * Flat Rate + parts * 90 Day Warranty
Buy ¢ Sell * Trade
Amiga Computers + Monitors + Accessories
BSP
Voice 908 245-1313
Fax 908 245-9409
WANT MAILINGS? EAX NAME + ADD + PHONE + FAX
USED SOFTWARE
We buy, sell, and trade used original software. Lowest
prices for C64, C128, Amiga, and IBM. Mention this ad
and your computer type for a free list. Call our BBS for a
complete list within minutes.
Call or write:
BBS:
8N1 1200-28.8k
ENTSIBLE
—==| 616-429-7211 OFTWARE
7 P.O. Box 930
St. Joseph, MI 49085
Ask for a list via Internet: Phone: 616-428-9096
CENTSIBLE@DELPHI.COM
ESCAPE ROUTE
The Adventures of Eric Hawthorne, P.I.
A combination of action, board,
and strategy games. Help Eric track
the infamous ICELADY who has
stolen the rare Acme Diamond!
Fun for everyone! For the C-64 or
C-128 in 64 mode.
Send check or M.O. for $19.95 to CREATIVE
PIXELS, P.O. Box 592, Library, PA 15129
All Aboard the Commodore
Information Supersubway!
‘The Underground is a grass-roots Commodore
publication produced with 8-bit_ computers,
Geos, and a Postscript laser printer. For a mere
year, you'll get helpful features, current
and on everything
A sample i
from
THE UNDERGROUND, 4574 Via Santa Maria, Santa Maria, CA 93455
ICarvMex: US$2.25/sample, $12.50/one year. International: USS3.75/sample, $21.50/one year.
64/1541 Repair - $40
*SPECIAL*
C64, 1541, J-S+Sft. - $99
r)
<
Everything for Commodore Computers
Sell» Trade + Repair + Buy
1420 County Rd. 914
Burleson, TX 76028
817-295-7658
817-447-6974 - Voice/FAX line
‘ALL STORE ITEMS HAVE A 00 DAY WARRANTY. IF, FOR SOME
REASON YOU ARE DISSATISFIED IN YOUR PRODUCT, YOU MAY
RETURN IT FOR REPLACEMENT OR STORE CREDIT ONLY.
SORRY, NO REFUNDS.
We carry a full line of hard-
ware, software & maga-
zines, both new & used, in-
cluding European items.
Our flat-rate repairs in-
clude both parts & labor.
Call for details. Trade in
your unwanted items.
Catalog - $2.95
Aut Masor Creoir
Caros Accerteo.
We carry a full line of
Amiga Products.
INTERCORP COMMUNICATION Presents
CSOFT Wares!
{As Seen on Many BBS's}
Digi<—>Dox V1.8
a SEQ. file reader that will read text as well as art.and supports drive's
8-111 also has many Digi-sounds which are very entertaining.
$2.00 Sat
none disk with avery easy
ing and playing.
Great For the Kids! $3.00 + $2.00 SaH
Send orders to
Intercorp Communication 466 W.Harwood Madsion Hts MI 48071
Alaska Hawil.a International add $1.00 to Sah
Super Pogo Stick Adds:
© 25 different mazes (with the
ability to use even more)
Both
for $19.95
games
a |
S (801 vee.
Specializing in NEW and USED Commodore Hardware,
Software and Accessories at excellent prices.
Send $1.00 for a HUGE list of products. Office Hours:
11:30 - 6:30 MST. Visa, MC, Discover and American Express accepted.
3366 South 2300 East, Salt Lake City, UT 84109
Volume 2, Number 6 35
COMMODORE WORLD
Graphic Interpretation
by Steve Vander Arb
GETTING STARTED WITH GEOBASIC: PART 2
In the last installment of this column, I started
talking about writing programs with geoBASIC.
| gave you an outline of a geoBASIC program
using an “event-driven” structure. Then I talked
through the creation of several ofthe components
from which our program would be built. fended
the column by saying that “everything will plug
right in, just like an electronic Lego set.” But |
also warned you that geoBASIC can throw you
for a loop now and then,
So, this time we'll review the structure of our
program and write out the geoBASIC code itself,
and I'llalso introduce you to some of the pitfalls
you should avoid.
Here's the program outline from last month's
column with my notes added in parentheses:
@titleScreen - a routine to create the title screen
with two buttons saved as “icons1”:
titlel - ties to @quit
title? - ties to @mainScreen
(This is a subroutine; the name is set apart
from other geoBASIC commands by the @
symbol. screen will have two buttons on
it which will, when clicked by the mouse
pointer, jump the program to routines called
@quit and @mainScreen. The label names of
routines can have upper and lower case letters
in them, as you can see, Notice that I called the
buttons “tithel” and “ttl These names
show up in the icon editor where I create the
buttons themselves.)
MAINLOOP
‘The program waits at this point for a button or
menuitem to be selected. The rest of the program
will consist of the routines which those buttons
Volume 2, Number 6
and menu items call up. (This is the heart of a
geoBASIC program. This is what actually makes
the program act like a “real” GEOS program.)
@mainSereen - a routine to draw the main
program screen and set pattern and color to their
starting values and display the following buttons
and menus:
a drop down menu saved as “mainM” with
three submenus,
a “geos” submenu where available desk
accessories will be listed automatically
“program info” - tied to @about
a “file” submenu with two choices:
“quit” - tied to @quit
“start over” - tied to @mainScreen
an “attributes” submenu with two choices:
“color” - tied to @colChoice
“pattern” - tied to @pattChoice
36
four icons saved as “icons2”:
draw] - tied to @drawReet
draw2 - tied to @drawLine
draw3 - tied to @sayHi
draw - tied to @sernClear
(This is the section that actually creates the main
screen of our program. Notice all the bits and
pieces that are mentioned. In this plan I have
included all have names from the editors used to
create these pieces, including the various
subroutines. This information is very important
to have planned out ahead of time, but most of it
never appears in your program just in the
editors. What follows this are the routines
themselves.)
@aquit
ends the program and automatically sends the
user back to the deskTop
@ecolChoice
changes the value of the background color
@pattChoice
changes the value of PATTERN for rectangles
@drawRect
‘ectangle on the screen
@adrawLine
draws a line on the screen
@sayHi
places the word “HI” on the screen
@sernClear
asks with a dialog box saved as “elrD" with two
buttons
“yes” which clears the screen
“no” which returns doing nothing
@about
reports the author's name in a dialog box
COMMODORE WORLD
(Now if you want to double check, look back through the plan and see
where each of these routines is called. Some are hooked to icons, others to
drop-down menu selections. They could appear here in any order, of
course, When an “event” occurs—when a menu selection is chosen, for
example—the program will go to whichever of these routines applies.)
Okay, now that we've walked through the structure of this program,
let's turn it into actual geoBASIC commands. Last time we worked on
creating some of the building blocks—the drop down menus, the
icons, and what have you. Now this time we'll plug them into the
nework.
program
10 REM geoBASIC program by Steve Vander Ark
100 @titleScreen
(Notice that we still use line numbers, even though the structure is not
very linear.)
110
120
130
140
150
160
170
CLS
PATTERN 10
RECT 80,50,290,170
PATTERN 1
RECT 60,30,270,150
PATTERN 0
RECT 61,31,269,149
(After I cleared the screen in line 110, I created a series of rectangles
with the RECT command. Before each one | set the pattern inside the
rectangle to a different value. This is a quick way to create a nice-
looking title screen. Now all it needs is some text.)
180 WINDOW 110,75,269,149
(This is a window for my text to go into. I placed it inside of the
rectangles I already drew.)
190 PRINT” geoBASIC Program”
200 PRINT"by Steve Vander Ark”
(Now we have a title screen. It isn't fancy, but it will do. Now we have
toadd a couple of buttons so the user can go on to the program itself.)
210 ICON”title”
(This command places a set of icons on the screen. These icons were
created using the “icon editor” under the utilities menu ofthe geoBASIC
screen, The images for the icons were created by the "bitmap editor”
and were called “titleL” and “title2.” The routines they call were also
specified at that time. All of this is specified in my plan above. Now,
once all that was set up for us, our program gets a nice set of icons, all
ready to use, with just this one simple command. ‘s what I meant
when I said that everything would plug in like an electronic Lego set.)
220 MAINLOOP
(Here weare. Our program is set up and nowis waiting for something
to happen. At the moment, the only possible events are the ones tied
Volume 2, Number 6
37
to those two icons we just placed on the screen. One of them will move
our program into its main screen, which we'll design next.)
300 GmainScreen
(That's another label. This routine will be called when someone clicks
on one of our icons on the title screen.)
310 PATTERN 0
320 SETCOL 15
(Before the program starts, I want to set these values to their base
number. That way if someone changes them during the course of the
program and then starts the program over, the changed pattern and
color won't be in effect anymore. The SETCOL command is actually
more complicated than it looks. I am using this formula: 15+16*0 .
‘That means my foreground color will be 0, which is black, and my
background color will be 15, which is light gray.)
330 CLS
340 REM MENU “
350 REM ICON *
(These two commands place a drop down menu at the top of the
sereen and a new set of buttons on a toolbar at the top. Again, these
wereall detined using the editors, so now we just have to plug them in.
All that’s left for us to do is to actually define our various routines.)
400
500
600
700
800
900 @sayHi
1000 @scrnClear
1100 Gabout
@quit
@colChoice
@pattChoice
@drawRect
@drawLine
Before we get those fleshed out, let me fill you in on a few possible trouble
spots. First of all, don’t use the “update” selection under the “file” menuon
the main geoBASICscreen, Doingso will damage yourfile. Second, be extra
careful to write down thenamesofany andall componentsof your program.
Remember that upper case or lower caseletters mustbe taken into account.
‘Thereason for thisisthat when you try to open an existing bitmap,
drop down menu, or other editor file, the requester box doesn’t really list
any of the applicable files from the disk. Those files are there, but you need
tobackspace over the word that appearson the dialogbox by thecursorand
type in the name of the file you really want. You will need to have the exact
filename written down somewhere because the files don’t show up in the
directory on the deskTop either. Careful planning in advance makes it
easier since you can name everything beforehand and make a list for
reference. Planning ahead is also handy when you need to assign routines
to various objects you create in the editors since you'll know exactly what
the labels for those routines will be.
Next time we'll get to the rest of our discussion on geoBASIC and the
rest of this program listing.
COMMODORE WORLD
Carrier Detect
When | first wrote about the World Wide Web,
mentioned that ina broad sense, it is a form of
advertising in which the consumer goes to the
advertising source for information about a
company or its products. It has gained in
popularity not only among “mainstream”
computer users and advertisers, but also by
Commodore users and those who in one way or
another support us. Commercial companies,
program authors and others have been adding
CBM support to the Internet ina big way, andit’s
something you can have, too. This is one of the
nice things about the World Wide Web— it’s
not limited to big commercial companies, nor is
it only for those with PC’s and Macs. As I
jained in CW #8, we d WWW pages
using an Internet utility called Lynx, whieh is a
text based web browser. But we can do more
than access WWW pages. We
What does it take to create your own web
page? You'll need to be on an Internet service
which allows you to create “home pages”. If in
doubt, ask the System Administrator. If your
service provider doesn't offer this capability,
there are numerous web presence providers on
the web that offer reasonable rates for both
and non-commercial purposes.
an create them!
commerci
Web pages are created using plain ASCII text
and special formatting codes known as /ITML or
HyperText Markup Language. You may have
noticed that some businesses are selling
commercial PC and Macintosh packages which
create Web pages and cost a lot of money.
really aren't necessary. HTML codes (or “
arejust plain textand can be created in any word
processor or text editor which allows you to save
text in true ASCH format.
These
What's Out There?
Before you jump into creating WWW pages, it
helps to know what's already out there, how
others have designed their pages, and the types
of things they've included. The following list of
COMMODORE WORLD
Ly Gaclyne R. Moranec
SPINNING THE WEB
Commodore related websites serves two
purposes. First, it’s a place on the web to find
Commodore support. Second, by seeing how
others have designed their sites, you can get
ideas on creating your own.
One of the most common things you'll notice
is that most websites are linked to others. Many
times it’s a reciprocal thing
if you include
link to someone else’s site, they in turn include
link to yours. The places you include links to will
depend on your interests and the overall content
of your website.
There are so many web pages out there, it's
hard to know where to begin, But, why not try a
few of my
crite sites?
skaiwan,com/~sirfitz/qlink.html
.portal.com/~steward/qlink html
When Q-Link closed its doors on October 31,
1995, 1 didn’t think I'd miss it, but a recent
World Wide Web tour of Q-Link home pa
reminded me that what made Q-Link special was
the people who made it fun to be there. People
like Sir Fritz (Charles J. Fritzhugh), JohnD39
(Steward), and Squirrel’s Nest John Purkey) who
have created a place on the Internet for those
who enjoyed Q-Link and remember it fondly.
These home pages are more than just a shrine to
a “dead offline service”, due in part to the
interactive items they've added to their pages,
like a “gRiFiTt!” (graffiti) wall to post short
38
messages and a registry of Q-Link screen names
and Email addresses so you can catch up with
old friends. Browsing the list of names, it’s
interesting to note how many people have kept
their screen names t of their Internet
addresses. Links to former Q-Link users web
sites are also included. The Q-Link sites are
integrated together in such a way that they are
almost seamless, Nothing is repeated and
everything is shared between the pages.
hutp://Awww2.ari.net/home/jpurkey/qscreens,html
This site has screenshots of the Q-Link load
screens that were seen whenever moving to
different areas on the service. Theseareavailable
as a C64 program to download, and within this
63 block program there's a menu with all 37
screens for vi ng. The screens can be
downloaded (or viewed with a graphic browser)
asindividual GIFs oryoucan download thewhole
collection in a PKZip 1.x archive. Purkey’s site
also includes a short library of classic Q-Link
files to download straight from the web.
QcLink the service may have died a senseless
and agonizing death, but Q-Link is (or was) not
so much an online service as a feeling of
belonging, anda mutual meeting place for many
kindred spirits. The serviceis gone, but the spirit
is alive and well in these web pag
as:
eS.
SIDS
http://stud 1 tuwien,ac.at/~e9426444/index.html
Ibelieve that SID music never would have gained
its popularity if it weren't for Q-Link and other
online services. I'm sure the ability to share ones
creations with others contributed to the strong
popularity. The SID home page has
interviewswith composers, ahistory of SID music,
and you can even vote for your favorite tunes.
Links to other SID related sites can also be found
here.
amples,
Issue 11
Creative Micro Designs, Inc. &
Commodore World
Attp://www.msen.com/~brain/guest/emd/
index.html
You can read about how CMD got started and
how it’s progressed over the years by selecting
“More AboutCMD" from theirhome page. There
is an online sample of this magazine (I have two
articles in the online issue). You can browse the
“Table of Contents” and read articles online.
CMD's productsare highlighted in their Product
Information pages, and to make looking up
specificitemseasier, theyare grouped by category.
This area was under construction when I visited,
but may be completed by the time you read t
To help users keep up with the current prices,
CMD hasa dated Price List of the items they carry
and their shipping charges. From CMD's home
page, you can also connect to Jim Brain's
Commodore WWW Links or the popular Yahoo
Index of fun places to visit on the net.
Softdisk Publishing and Loadstar
ttp://www.webcom.com/~sofidisk/c64, html
Loadstar’s home page has information about the
two disk magazines published by Softdisk
Publishing: Loadstar and Loadstar 128 Quarterly.
When | visited, the software products listhadone
item, “The Compleat Series”, which didn't havea
description. Hopefully it will be more “compleat”
later. The site has ordering information for the
magazines, and software items, with specials for
those ordering items from the website. A sample
“Table of Contents” shows the type of programs
and articles which normally make up an issue of
Loadstar. Several articles are also available to
read, including programming columns(“When is
Your Program Fi 2”) interviews (“Interview
withCMD"), reviev ynth ToneGenerator”),
and others (“Miscellaneous Hints & Tips”). This,
site has several links to other Commodore related
web sites.
Commodore Format Magazine
http://www. futurenet.co.uk/computing/
commodoreformat.html
Commodore Format magazine is
publication. Itshome page hi leofeontents
for recent issuesas well asa list of software which
they sell. While a bit on the spartan side, its link
to FutureNet Computing News makes up for it.
FutureNet Computing News offers some of the
best computing news available. You can get the
latest computer news from the net sometimes
weeks or months before you see it in print.
a British
Volume 2, Number 6
Software Support International
gopher://gopher.soonet.ca/
11\COMPUTERSMITH
Aitp://www.soonet.ca/~compsmth
Computersmith offers most of Software Support
International's Summer '95 Commodore/Amiga
catalog via Gopher, and possibly via WWW b
time this article is published, which is why I've
included them here. When I asked
Computersmith’s owner, Allen Smith, if the
catalog was sanctioned by Sofiware Support
International, he toldme “SSI supplied the text to
me(asa WordPerfect file)and gave mepermission
touseitin the way [have. |, in turn, am doing this
both as a service to all Commodore (8-bit and
users, as well as to try and g generatealittle
businessformyself. My businessbeingaC:
Dealer for SSI products.” The SS!
otherinformation can also be retrieved vi
To find out more, mes:
info@compsmth.soonet.c:
jalog and
mail.
age
send a to
Computer Workshops
Attp://www.armory.com/~spectre/ewi.htm!
Computer Workshops is a software company
which supports the Commodore 8-bit line as well
as MSDOS. Commodore software highlighted at
this site are “Flyer” and “MahGong” which are
commercial games available directly from the
company. Descriptions of the games are given,
along with review comments from the now
defunct Gazette magazine. Two sh:
releases, “NewView” and “HyperLink
described. The programs are available via FTP,
but theFTP sitewasn’t(attime ofresearch) linked
into the web site.
CNet 64 DS2 BBS
Attp://weww.infinet.com/~mbendure/
Michael Bendure’s CNet 64 DS2 BBS home page
includes personal background about the man
behind the networking software as well as
support for his BBS software, the network it uses
(DS2) Network v3.04), and ComNet
development. ComNet is a dream of Bendure’s
in which all Commodore BBS's (regardless of
software) have an integrated network so they
can share messages and files between them.
$2. BBS sysops
isplanned, butinthemeantime, thoseinterested
in learning about the bulletin board system can
check out the featuresand hardware it supports.
This also has Commodore hardware and
software listed for sale and links to other CBM
related software.
39
RMS Computer Systems (CNet 128)
Attp://www.msen.com/~brain/guest/rms/
When I visited the RMS Computer Systems home
page, it was still under construction. RMS
Computer Systems sell and support the CNet 128
BBS system and computer systems parts and
accessories. RMS plans to have a support area
within the web site so registered sysops can get
updates, documentation and other support
regarding the operation of the CNet 128 Bulletin
Board System, As of thiswriting, this site hasa list
of BBS features and hardware requirements as
well as information about how to reach the Cave
Of Cerberus BBS, which is C-Net 128's support
Board.
Jim Brain’s Commodore 8-bit Site
Attp://www.msen.com/~brain/ebmhome.himl
Jim Brain's site has become one of the major US
places to check out Commodore developments.
Most Commodore related web links can be found
here and the links are continually updated.
Features here include the ability to read the
comp.sys.cbm FAQ ile in HyperText format and
links to other Commodore related FAQ files such
as comp.binaries.cbm and the C64 emulator
newsgroup. Youcan find theanswers to the Tri
questions in this magazine , read issues of C=
Hacking (a Commodore magazine on the net) or
you can learn about Jim's business, Brain
Innovations, Inc.
Craig Bruce’s ACE and LLR
http://cenga.uwaterloo.ca/~csbruce/ina
xhtml
Craig Bruce is a Canadian programmer, His
website has a mixture of information about
himself and about some of his popular programs
like ACE, Little Read Reader and others. He has
links to the FTP site where his programs can be
downloaded, and lists of other places of interest
to Commodore users. Craig also has a few UNIX
utilities which he's written, and help files for
UNIX Vi and EMACS editors on his site.
Rod Gasson’s QWKRR128
hitp://www.msen.com/~brain/guest/
Gaelyne_N foranec/qwkrr/
Attp://www.msen.com/~brain/gquest/
Gaclyne_Moranec/qwkrr/browser.himl
Rod Gasson doesn't have a home page, but two
of his programs, QWKRR128 and Browser, do
havea home on the web, under my wing. When
Iset up my personal home page, I decided toadd
support for QWKRR as an experiment in using
COMMODORE WORLD
the World Wide Web to show how it could be
used to offer support for shareware and
commercial programs.The QWKRR pages
consist of updated information about support
files which weren't available when QWKRR128
v4.3 was released. Youcan even register QWKRR
while on the Web. The Browser pages let you
become a Beta Tester; you can download the
work “in progress” of frequently updated
versions right from the World Wide Web.
Gaelyne Moranec’s Home Page
http://www.msen.com/~brain/guest/
Gaelyne_Moranec/
I've included links to most if not all of the web.
pages listed here, FTP links to Commodore files,
a type-in term program that a reader in Italy
asked me for, on-going lists of favorite CBM
programs, BBS's which support us, a Guest page
to sign, and links to my articles in Commodore
World's online sample magazine issue. (Oops,
my modesty just left me again!) A special site on
my page has been added:a tutorial on HyperText,
and examples of magazine pages on the web. The
URL for the tutorial is http://vww.nsen.com/
~brain/guest/Gaelyne_Moranec/learn.html,
D
World Wide Web Alternatives
Web Surfing via Telnet
For those using online services who need to
telnet to use Lynx, thisis telnet site allows you
to use the “Go” command to go to any of the
URL’s listed in this article:
Telnet to: fatty.law.cornell.edu
Atthe first prompt, type “www”, Don't forget
to set your terminal emulation to VPL00 (or
V7T102). GEnie users should turn off echo
before beginning the telnet session.
Web Surfing by Email
If your only access to the Internet is vi
ive web pages by Email. S
mail,
imply
send a message with no subject line to
you can re
webmail@curia.uceie on the first line of the
message type the word “go” followed by the
URL you wish to view, such as:
go hitp://www.ncsa.uiueedu/General/laternet/
WIWW/HTMLPrimer html
COMMODORE WORLD
URL Listings in Carrier Detect
Q-Link
http://www. Kaiwan.com/~sirfitz/qlink html
http://www portal.com/~steward/qlink html
hutp://www2.ari.net/home/jpurkey/qscreens.html
sIDS
http://stud1.turvien.ac.at/~e9426444/index, html
Creative Micro Designs, Inc. & Commodore World
Aup://www.nsen.com/~brain/quest/emd/index. html
Softdisk Publishing
Attp://www.webcom.com/~softdisk/c64.html
Commodore Format Magazine
Attp://wwiw.futurenet.co.uk/computing/commodoreformat.html
Software Support International
gopher://gopher.soonet.ca/11\COMPU:
hitp://www.soonet.ca/~compsmth
SMITH
Computer Workshops
http://Avww.armory.com/~spectre/cwi.htmt
CNet 64 DS2 BBS
htip://wwww.infinet.com/~mbendure/
RMS Computer Systems (CNet 128 BBS)
http://Avww.msen.com/~hrain/guest/rms/
Jim Brain’s Commodore 8-bit Home Page
http://www.msen.com/~brain/chmhome htm!
Craig Bruce’s ACE and LLR
http://ecnga.uwaterloo.ca/~esbruce/index,html
Rod Gasson’s QWKRR128
http://Avwww.msen.com/~brain/guest/Gaelyne_Moranet/qukrr/
Gaelyne Moranec’s Home Page
http://www.msen.com/~brain/guest/Gaelyne_Moranec/
The tutorial on HyperText
http://www.msen.com/~brain/guest/Gaelyne_ Moranec/learn.html
Web Browse
http://vww.beta.yahoo.com/
FTP files from ccnga.uwaterloo.ca
Jipsget//cenga.uwaterloo.ca/pub/chin/telecomm/
CompuServe Telnet Session
telnet;//compuserve.com
HTML Guide
http://www.ncsa.uiucedu/General/Internet/ WWW/H TMLPrimer.iitml.
40
Issue 11
+ Uses Standard Cable
Equipped with a female DB-25
le connector to allow use of
standard ‘PC’ printer cables.
* Switchable Pass-thru
Allows connection of printer and.
other user port peripherals such
GEOCABLE i] ===
Parallel Print Cable
The Most Advanced Parallel Print Cable Ever!
« Faster Output
Parallel printing offers up to a
40% increase in output speed.
* GEOS Drivers Included
Includes GEOS drivers plus
useful GEOS ulilities like
MacAttack II, WronglsWrite, and
Cw & RUN BACK ISSUES
For years, RUN Magazine provided Commodore Users with a
great source of information, and now CMD has given you
Commodore World. Don't let this valuable information slip
away—fill in the voids in your library now!
RUN Magazine Back Issues
sues for $12.00, any 6 for $18.00,
or any 12 for only $24.00
RMJAN88 January 1988 RMOCT89 October 1989
RMFEBSS February 1988 RMSP89 Special Issue 1989
RMMAR88 March 1988 RMJAN9O January 1990
RMAPR88S April 1988 RMMAY9O May 1990
RMMAY88 May 1988 RMJUN9O June/July 1990
RMJUNS8B June 1988 RMDEC9O December 1990
RMJUL88 July 1988 RMJAN91 Jan/Feb 1991
RMFEB89 February 1989 RMJAN92 Jan/Feb 1992
RMMAY89 May 1989 RMMAR92 March/April 1992
RMJUN89 June 1989 RMMAY92 May/June 1992
RMJUL89 July 1989 RMJUL92 July/August 1992
RMAUG89 August 1989 RMSEP92 = Sep/October 1992
RMSEP89 September 1989 RMNOV92 Nov/December 1992
Shipping: 3 or 6 issues - U.S. $3.00, Canada $5.00, Foreign $15.00; 12 issues.
U.S. $5.00; Canada $7.00; Foreign $20.00.
Commodore World Back | issues
$4.95 each, or any 3 for on!
as modems without conflicts, GEOS GONVERT. CW1 Issue 1, Volume 1, Number 1 CWE Issue 7 tae 2, Number 1
GEOCABLEAI(6{t.) ONLY $29.00 GeoCablellis compatble wth GEOS, Perfect CW2 Issue 2, Volume 1, Number 2 CW7 Issue 7, Volume 2, Number 2
GEOCABLENI (15%) ONLY $24.00. Pint LO, Acton-Feplay MK Vi, Superbase, CW3 Issue 3, Volume 1, Number 3 CW8 Issue 8, Volume 2, Number 3
Shipping: US $5.00, Canada $7.00, ‘Superscript, Papercip Ill. and allsoftware tat CW4 Issue 4, Volume 1, Number 4 CW9 Issue 9, Volume 2, Number 4
Foreign $25.00. supports user pont parallel printing.
\CraD
Issue 5, Volume 1, Number 5 CW10lssue 10, Volume 2, Number 5
Shipping: U.S, and Canada $2.00 for first issue, plus $1.00 per additional
issues,; Foreign $5.00 per issue.
Creative Micro Designs, Inc.
P.O. Box 646 Orders: 800-638-3263
East Longmeadow, MA 01028 Info: 413-525-0023
For years, Commodore set the standard with the 1351
Mouse. Sure, it was vastly superior to using the old digital
input devices like the 1350 mouse, joysticks or imitation
trackballs. But everything can be improved. Guaranteed
100% 1351-compatible, SmartMouse and SmartTrack
do everything the C-1351 does and more! These highly
intelligent, three-button input devices include a built-in
battery-backed Real-Time Clock, along with double-click
and Turbo features for GEOS. Plus, they come with a
complete set of utilities for using the clock in GEOS and
BASIC applications. Modern ergonomic designs make
these devices smooth operators that are a pleasure to
use. So, if you're tired of the slow, erratic movement of
your current input device, make the intelligent choice and
pick up a SmartMouse or SmartTrack today!
* Three buttons means convenience! If you're a GEOS user, the left *
button is configured as single click, the right as a handy double click
and the center button is the TURBO button. When depressed, it
doubles the speed at which the pointer moves across the screen.
Additionally, programmers can assign their own functions to all
three of the buttons.
* Unlike other third party mice or trackballs, the CMD SmartMouse and
SmartTrack trackball use the same custom gate array chip as the
Commodore C-1351 mouse. This guarantees 100% compatibility.
‘SmartMouse/SmartTrack utilize the same advanced technology used
in today’s powerful 486 and Pentium PC's, providing you with
unparalleled accuracy and smoothness.
+ Built-in battery-backed Real-Time Clock automatically sets the GEOS
clock, displays time and can be used in your own programs.
+ Includes utilities disk and detailed manual explaining the utilities
and programming information.
* Attention Lefties! SmartMouse can be altered for left handed use.
* Don't be fooled by the old style digital "trackballs". These only
perform as well as a joystick. SmartTrack uses analog inputs for
greater accuracy.
+ Switches easily into joystick emulation mode on power-up by holding
down the right button.
Volume 2, Number 6 a COMMODORE WORLD
Over The Edge
By Don Radler
K>
VIRTUAL REALITY: A PLANNED DISASTER?
Technology, as you might have noticed, often
has a few unexpected consequences.
ITEM: When Henry Ford figured out how to
put each of us into one of his automobiles, he
didn’t plan on helping to launch the sexual
revolution, But the freedom the automobile
provided for many young couples, 2
hack seats hidden from sight by sheets of steel
Were just too tempting.
ndall those
ITEM: When Dave Lennox sold the public on
putting his air conditioners into more and
more rooms, he didn’t mean to help criminals.
Besides cooling off Mom and Dad inside
(instead of on their front porches or stoops,
leaving the streets un-watched) it was also
easier for burg!
s to gain entry to the house
by popping the units out of the windows. And
there went the neighborhood.
ITEM: When Lee De Forest laid the
groundwork for television, he wanted to beam
culture into our homes, Look what we ended
up with! Gangsta rap at breakfast, tabloid-
talk shows and soap operas starting at lunch,
feminine hygiene commercials and graphic
ccompanying dinner, and
pornography on into the wee hours of the
morning.
scenes of warfare
Even smaller technological changes can have
large effects. For example, we derived a sense
of community and connection to each other
when there were only three networks, and all
of us were watching Ed Sullivan at the same
COMMODORE WORLD
time. The next day, in every office and factory
and restaurant, last night's “shew” (Sullivan's
much-imitated pronunciation of “show") was.
tion. Now, with over 50
s the norm and 500 promised,
what you looked at last night doesn’t figure to
be what I watched at all.
Similarly with Alexander Graham Bell's
T&T tells you to
reach out and touch is more than likely going
nd MC's
the topic of conve
ble channel
invention: the “someone”
to be an answering machine,
au CIS
er
q
1
“friends and family” are usually not people at
all, but the gadgets that speak and listen for
them. In the absence of real, live people,
community can’t exist; the motivation for
inventing the telephone has already been
defeated by the way newer technology
enhances its use.
42
Moving from analog cyberspace to digital,
we come to the much-vaunted information
superhighw there are literally
thousands of Special Interest Groups (SIGS) or
Round Tables (RT's), where people of narrow
focus type messages back and forth in the belief
that they are thereby broadening their
horizons. Thus, the ever-expanding roster of
online enthusiasts becomes not a community,
but a collection of inward-looking electronic
tribes. Ultimately, those tribes can be expected
to do battle with one another over the available
bandwidth, just as tribes are proving their
humanity in places like Bosnia and Somalia
today.
Finally, we arrive at the ultimate anti-
community, virtual reality, Here, hardware and
software conspire to bring you inside
computerized environment, experiencing it
with several senses at once and responding to
it asa participant rather than a mere observer.
You may wear a headset or special glasses to
see scenes in full-color 3-D and hear things in
surround sound; you may wear gloves that act
like a mouse or a joystick but also feed back the
feel of things; you may even climb into a full
body suit to generate these experiences.
However, our understanding of human
perception meshes with our ability to design
hardware and software to fool ourselves. VR
will pull us into the machine and make us
experience simulated events rather than just
see and hear them from outside, With this
ability, we can play - or even learn.
Bennett Davis, writingin Discover Magazine
back in June 1990, said this about it: “Many
Here,
Issue 11
researchers see complete modestly-priced
‘personal reality simulators’ little more than a
decade away, and they already worry about
CouLD IT BE
Sounds more than a little like where VR is
headed, doesn't it? And these quotes from a
Huxley character just might have explained
the consequences.” THAT THE what's driving it:
Davis quotes Thomas Furness, pioneer of CONSEQUENCES
simulators for the military: “It's not like OF THIS “Industrial civilization is only possible when
elevisi apersonale or, Wil d there’s no self-denial.,.otherwise the wheels
television or a personal computer. With those, TECHNOLOGY ? a Hee
you're still on the outside. Once that field of stop turning...Jmagine the folly of allowing
view surrounds you and controls everything WERE PLANNED people to play elaborate games which do
you see, you're inside. The social implications ALL ALONG? nothing whatever to _ increase
are of great concern to us.”
The downside is the
immature people. Virtual re
people want them to do, and that’s not the
ion of socially
alities willdowhat
way the real world works, This can be a
tremendous medium through which to learn,
but it can also hinder people from learning
other real things in the real world. Are we
ready for a world dependent on artificial
experiences’
Youcould “virtually” strangle someone. You
could have a virtual chain-saw massacre, You
could use this to experience all kinds of
expressions of deviant behavior, and through
it people could become inured to violence or
perversion in real life, much like children
confused by the concept of make-believe versus
real life. Many years earlier, Aldous Huxley
singing,
| Click Here Software’s
or computer running a fax modem
* User-friendly and easy to operate
° Auto-answer mode for unattended operation
. flanual send/receive mode lets you share phone
line
* Built-in functions convert faxes to geoPaint files
* geoPaint files may be faxed without conversion
* Built-in printing functions for printing fax
documents and geoPaint files
¢ Printer drivers may be selected directly from
within the program
° Full-page scanning into geoPaint is possible
using a standard fax machine as a scanner
° Built-in simple terminal program lets you browse
telecommunications services
¢ SEND & RECEIVE FAXES to/from any fax machine
Is OUR NEED FOR
GADGETS AND
SPEED WHAT THE
DIGITAL FUTURE IS
REALLY ALL
ABOUT?
foreshadowed this concept in his book Brave
New World, Here's one example:
consumption...We don’t want people to be
attracted by old things. We want them to like
them to like the new ones,”
Could it be that the
consequences of this technology were planned
all along?
computers”? Is our own refusal to deny
the of
“technological advancement” being exploited
unexpected
he proverbial “world run by
ourselves anything in name
by the richest among us? Is our need for gadgets
and speed and their greed for money and power
at the digital future is really all about?
“Three weeks in a helicopter. An all-super-
synthetic-talking,
stereoscopic feeling, with synchronized scent
organ accompaniment,”
colored, %)
* Commodore C-64, C-64C, C-128, 128-D computer
* GEOS 64 or GEOS 128 version 2.0
* SwiftLink RS-232 cartridge
* Group III, Class 2 fax modem
* GEOS compatible disk drive (large capacity drive
or RAM disk recommended but not required)
geoFAX &
SwiftLink ...
geoFAX, SwiftLink
& BOCA 14.4 Fax
GeOFAX......00006 $39.95
SwiftLink «20006 $39.95
BOCA 14.4
Fax Modem .. $129.95
Creative Micro Designs
Volume 2, Number 6
COMMODORE WORLD
Harp Ties
CHANGING DISK DRIVE DEVICE NUMBERS
By Doug Cotton
One of the most often asked questions we get is how to change device
numbers on disk drives, While the 1541-IL and 1571 drives were created
with DIP switches for convenient device number configuration, Commodore
efi this convenience out of previous 1541 drives, and the 128D, They did,
however, at least make such changes possible directly on the cireuit boards.
Yes, you've got to get under the hood to change the device number.
Commodore also provided information in the 1541 User's Ma
number changes. Unfortunately, the instructions were wrong
in some editions, and often didn’t match the revision of the 1541 circuit
board in the drive that the manual came supplied with,
So, after a little prodding, we've put together this illustrated guide to
‘h of the older 1541 models, as well as on
the 128D. In addition, we've covered installing switches that will let you
make device number changes whenever you like,
ual on
changing device numbers on e
Tools & Other Required Goods
Asa bare minimum, you'll need the following itemsin order to change your
1541's hardware device number:
- A Phillips-head Screwdriver (#2 should work nicely)
- An Exacto Knife (or other precision utility knife or blade)
In addition to these items, I'd also suggest a magnifying lens of some type
(for the close work), anda good light source. Ifyou want to install switches,
you'll also need the following:
- One or twe Ainiatur
-A Soldering Iron or Pencil
- Solder (electronic circuit variety)
- Hookup Wire (28 gauge stranded)
- Asmall pair of Diagonal Cutters (Wire Strippers would be handy, too)
- A Drill and Drill Bit (to provide the hole for mounting the switches)
oggle Switches (SPDT will work as well)
Here we go...
We'llstart off with disassembly. Start by removing the screws that hold the
case together (these are located in recessed holes in the bottom half of the
case on the 1541 models, and on the back of the 128D case). After you have
DISCLAIMER
Information in this column is presented for educational purposes
only, In no event will Commodore World or Creative Micro Designs,
Inc, beliableforany direct, indirect or consequential damages resulting
from the use or misuse of this information,
the screws removed (and safely tucked away where you won't lose them),
remove the upper half of the case. If you're disassembling a 1541, you'll
need to remove the metal shield that covers the cireuit board (there are two
screws located on one side). Those of you with 128D’s will have to remove
the drive itselfby removing the three screws that hold it in place (one on the
left side, two on the right), pulling the lever off the front, and sliding the
mechanism backwards into the case.
‘The next step for 1541 users is to determine which revision of the circuit
board you have. There are three main types to be concerned with, and these
are shown in Figures 1, 2 and 3. If your drive (like most) has the “short”
board (Fig. 2), then check around the edge ofthe board for the revision level
(A, Bor C),
Now check Figures 6 through 10 to locate the Jumper Pads used to
program the device number for your unit. Jumper Pads look like two
silvery circles, each having a split down the middle, except at the very
center where a trace bridges the two halves of each circle together (see
Figure 4 for a closer view). To change the device number, we need to cut
away the bridge on one or both of these Jumper Pads (this is detailed in
Figure 5). Which pads do what? The chart below shows you, Note that the
pads have numbers by them, either a 1 and 2 or J1 and J2 (there are two
exceptions where the pads aren't marked—the 1541 Rey, C short board,
Jumper Pad Device Number Programming
Device Number 8 9 10 ab
Jumper 1 or J1 Closed Open Closed Open
Jumper 2orJ2 Closed Closed Open Open
Figure 1. 1540/1541 Long Board
COMMODORE WORLD
Figure 2. 1541 Short Board
44
Figure 3, 1541C Board
Issue 11
and the 128D—so we've added numbers to the pictures that show the pad
locations).
Note the terminolgy used in the chart: “Open” indicates that the bridge
trace has been cut, while “Closed” indicates that it has not (or that the two
pad halves are connected by other means, like a switch or solder bridge).
Ifyou're making a permanent change (and not installing switches), pick
ou want and cut the appropriate traces (see Figure 5)
the device number
with an Exacto knife, If you're installing two switches, cut both;
installing one switch, decide what device numbers you want available by
referring to the chart, and cut one or both pads accordingly. (There are a
lot of possible device number combinations that can be achieved using a
single switch, but most users usually just cut J1, or Jumper 1, and installa
switch on it to provide switching between devices 8 and 9.)
Be sure to examine your work to make certain the cuts completely
seperate the pad halves. If you're not installing switches, reassemble and
test your unit. If you're installing switches, continue on.
Se
mounting hole(s). Now prepare two wires for each switch, long enough to
reach from the Jumper Pad locations to the switeh mounting hole(s) with
a couple of extra inches of extra slack, Strip off an eighth of an inch of
insulation from both ends of each wire.
ct a location to mount the switch(es), and drill the appropriate
Solder two wires to each switch; one to the center terminal, and the
other to the outside terminal. (Ifyou're using SPDT switches, use either of
the outside terminals and ignore the other.) Now solder the other ends of
thewires to the two halves ofthe pads, one wire to each pad. Make sure t
you don’t short the pads together with your solder, and cut aw
excess wire. Also be sure that the wires from each switch go to the s
number Jumper Pad.
Once you've finished, examine your work carefully, and after you're
certain that all is correct, reassemble and test your unit.
Top Half
Bridge
Bottom Half
sistas
Cut away the
bridge to
separate
the top and a
bottom halves.
Figure 6, C-128D Jumper Pad Location Figure 10. 1541C Rev. A Jumper Pad Location
Volume 2, Number 6 45 COMMODORE WORLD
ROUTINE STUFF
HPROGRANMIS T
by Maurice Randall
Let's start getting into some of the GEOS Kernal routines and see how we
can use them effectively in our programs. In this issue, I will cover some of
the more general routines that you might be likely to use. These will be
routines that perform actions on memory or help out with math
calculations. In a future issue, we will get into the routines that involve
graphics and other screen display routines.
Thave always felt that a computer programmer should be comfortable
with math. After all, isn’t that basically what a computer is doing? It is
alculating addresses and offsets. That is all taking place at the
processor level of the machine. At the programming level, we might need
to calculate a game score, or multiply a dollar amount by a quantity, or
perform some other typical calculation, Sometimes, developing a math
routine to perform these jobs can be quite tedious. The GEOS
provides us with some built-in routines that will help us outin many
Let's take a look at some of the more helpful ones.
It’s Dividing Time
Perhaps the most difficult of the standard math functions to write in
machine language is division. Once the concept is understood, it is not
that big of a deal. But comprehending it and understanding it can be
tric
problem such as 379 divided by 23. How would we write a routine to
perform this calculation? In GI nple to use the Kernal routine
called Ddiv, Ddiv gives us the ability to dividea 16-bit number by another
16-bit number as the following example shows:
anditisalso easily misunderstood or forgotten. Takea simple math
LoadW r0,#379
LoadW r1,#23
jdivide 379
jby 23
Idx #0 3 points to r0
ldy rt iy points to rl
Jsr Ddiv jperform the division
Upon return from Ddiv, the zero page register that x was pointing at,
which wasr0, will be holding the quotient result of the division and r8 will
be holding the remainder, ifany. Since we were dividing by 23, which is
less than 256, our code could assume that r8H is zero and only need to
check r8L for the remainder. In this example, r0 will now contain 16
the remainder, which is 11, will be in r8L.
Ddiv does not limit you to using r0 or rl. You could use any of the
available registers such as a0 through a9. Just be sure not to use r8,
obviously, or r9 which is also used by the routine. The important t
COMMODORE WORLD
46
that xis pointing at the number that will be divided by the number that y
is pointing at.
Multiplying Is Just As Easy
Thenice thing about using the GEOS routines is the similarity in how they
are setup. This makes it easy to remember each time you need to use the
routines. Let’s see how multiplying looks the same as dividing. This time,
we will multiply 379 by 23. The routine that is used is called DMult and
actly the same as Ddiv, except that it gives us the result of a
ion instead of a division,
LoadW r0,#379 jmultiply 379
LoadW r1,#23 by 25
Idx #r8 i points to ro
Idy #rt sy points tort
Jsr Dmult iperform the multiplication
This time, the 16-bit result will also be found in r0 upon return from
DMult. Obviously, there won't be a remainder in this case, however the
result of a multiplication could very easily exceed 16 bits, If the result is
greater than Sffif( or 65,535 ), the carry flag will be set, Aslong as the carry
flag is clear, you know the result is entirely contained within r0, In our
imple, r0 will contain $220d, or 8717 in decimal.
There are also two other multiplication routines available, One is called
BMult for multiplying an 8-bit byte times a 16-bit word, and the other is
BBMult which will multiply one 8-bit byte by another 8-bit byte. Each
routine will return a 16-bit value. These two routines operate almost
exactly like DMult except that where a single byte is used, only the low-
byte of the register will be needed. The register that is pointed at by x
always gets the result, and it is always a 16-bit result. In the case of BMult,
x must point to the 16-bit value, while y points to the 8-bit value. Once
multiplied together, the result will be in the register pointed at by x.
e
Counting Down To Zero
Ddeccan bea handy routine when you need a 16-bit counter. Let's say you
are reading bytes from a buffer and you want to make sure that you only
reada specific number of bytes. Maybe the buffer begins at $5000 and you
want to read in 1000 of those bytes and send each one individually to
another routine for whatever reason, You could put the value of 1000 into
a register and let Ddec decrement the value each time a byte is read and
processed. Here’s how it might look:
Issue 11
start0fBuffer =$5000
LoadW r6,#start0fBuffer
LoadW r2,#1000 jcount down from 1668
10S
ldy #0 jread the byte pointed at
Ida (r0),y sy r0
Jsr ProcessByte ;go do whatever with it
inc rOL jpoint rO to the next byte
bne 20$
inc roH
208
Idx #r2 spoint x at r2
jsr Ddec jecrement r2
bne 10S ibranch back if not zero
As you can see in the example, all we have to do is set x to the value of #r2
and let GEOS decrement it for us. By testing the zero flag, we will know if
we have processed 1000 bytes y
that does the processing will have to preserve both r0 and r2, or we will
have a bug on our hands.
- Of course, in this example, the routine
‘There area few other math routines, but I find these to be the ones that
Tuse the most.
Clear Your RAM
Here's a pretty important routine, it’s called ClearRam. I use this one
mostly when a program first gets loaded and run. | use it to clear out a
variable area, It’s common for you to establish a variable area that begins
just after the end of your program code, in an area that you might define
as ramsect with GeoAssembler. Well, when your program is first loaded,
there is no gua Ifyou just start letting your
code run, you might get to a routine that checks one of your variables and
ifit contains the wrong byte, it could mean trouble. So, try to make a point
of clearing out this area before getting too far into the running of your
program. Itis also simple to use, as you will see.
isin this are
LoadW r0,#50
LoadW ri,#startOfariables
dsr ClearRam
;Zero out 50 bytes
;beginning here
Inthe above example, startOfVa
will clear out. In this area, we have 50 bytes that need clearing. You can use
ClearRam to clear out any siz ‘a anywhere within the computer's
memory.
As you can see, GEOS has routines to help us programmers out. Make
nd will also be more
compact. Let's take a look at some more of these easy to use routines next
ablesis the beginning of thearea thatwe
use of them and your own code will be easier to write
issue.
Volume 2, Number 6 47
CKit 94!
It's Cool
Cit 94 is a powerful collection of backup utilities designed to take
advantage of the expanded Commodore systems of the 90's. In fact
the Ckit is so advanced, we recommend it only for certain
Commodore systems,
If You Have One Of These
Commodore 64, 64C, 128, or 128D
And One Of These
CMD RAMLink, PPI RAMDrive, or a 17XX REU with JiffyDOS
And At Least One Of These
Commodore 1541/1571/1581 or any CMD Storage Devi
*# YOU NEED THE CKIT 94! ¢
It's Mean
Ckit 94 can view, select, and copy over 1,000 files! It can also copy
entire 41/71/81 disks in ONE pass. It can even make the next copy
directly from RAM. With the CKit you can squeeze over 700 files into
an archive. Even more, you can squeeze your 41/71/81 disks and
CMD partitions into backup files. All of this power is at your
command through an easy to use menu driven interface,
File Utilities
Filemaster file copier and the Archiver file squeezer
Disk Utilities
Procopy disk copier and the 41/71/81/Native Boa disk squeezers
BBS Utilities
New Dissolver SDA maker and fast PD
ompers
It's Better
Ckit 94 has 2 X faster and tighter compression than in previous
versions. All of the utilities have been enhanced for power and speed.
Plus, it has three new poweriul utilities. And it takes full advantage of
Commodore 128's and REU's. Wow!
ck Out The Support
¥ Commodore 1541/1571/1581 Drives
¥ CMD Hard Drives/Floppy Drives/RAMLinks
¥ PPI RAMDrives
¥ Commodore 128 VDC RAM Support (16K and 64K)
¥ Commodore 128 2MHz Enhanced Mode Support
¥ Commodore 17XX REU Support (up to 16Meg)
¥ RAMLink and RAMDrive DACC Support (up to 16Meg)
Get Your Copy Now!
CKit 94 is available at fine Commodore mail order outlets such as
Creative Micro Designs. You may also order directly from us.
Mad Man Software, Inc.
1400 East College Drive
Cheyenne, WY 82007
(307) 632-1178 Information
Enclose Cheek or Money Order for:
CKit 94 $39.95 (Update $9.95) plas
Shipping $5 US aed Canade ($10 Foreige)
Updete rer Key from
COMMODORE WORLD
BASIC
USING ML SUBROUTINES
INS TING"
If you've been following along the last couple of issues, you've probably
noticed that BASIC programs lack the speed of their machine language
counterp: ke a look at how you can go about bridging this speed
gap in your own programs.
cts
Speed Techniques
There are a number of ways to speed up your BASIC programs. Some
programmers prefer to write short concise code, excluding all possible
extras, For example an experienced programmer may code:
10 fori=@tol5:poke53280, i:next
Instead of:
10 rem * flash the border all 16 colors *
20 for i=@ to 15
30 poke 53280,4
40 next i
Notice how the programmer left out the REM statement and the variable (i)
after the NEXT statement, The prog
statement through the use of the colon, Despite the spe
one line statement, I prefer to use the latter. Readability can be quite
luable during development, debugging, and maintenance. However,
don't discount this method just because I don’t like it. It's sometimes
necessary to sacrifice readability to make your program the best it can be.
Some programmers compile their programs with a BASIC compiler,
‘Thisisa wonderful solution. However, it should be considered the last step
in speeding up your BASIC programs. This method can also present
problems should you decide to integrate your programs with machine
age in the future.
ammer also chose to use a compound
Jadvantage of this
langu
Machine Language Subroutines
Often times, the best way to speed up your BASIC programs is through the
strategic use of machine language subroutines. Fortunately, there are a
number of great pre-written machine languagesubroutinesavailable. These
can be found in BASIC programming books (Compute’s Programming the
Commodore 64 and Mapping the Commodore 64 are two fine examples),
LOADSTAR’s various ML tool boxes (excellent tools available via Softdisk
Publishing), and in the public domain, So it's not necessary to know
machine language in order to harness its advantages. Which brings us to...
This Issue’s Example
This month’s example focuses on the strategic use ofa pre-written machine
Janguage subroutine. Asa bonusyou will havea handy subroutine that you
will use again and again. The subroutine is a directory listing routine. Ttis
written in BASIC and has a small machine language subroutine ofits own,
COMMODORE WORLD
48
;—
—
Lincluded a 100
performance
» BASIC version of the directory lister to demonstrate the
tage of the machine language. The two subroutines
ad
Lines L000 - 1199 : BASIC Directory Listing
Lines 2000 - 2299 : BASIC+ML Directory L
ibroutine
ting Subroutine
These two subroutine:
are complex; please don't spend too much time
deciphering them, When you use pre-written subroutines in BASIC or
machine language this comes as no surprise. The key concept here is not
how the subroutines work, but how you use them. You will find that using
pre-written subroutines can save hours of work.
Project
See if you ean add the directory listing subroutine (the ML. version of
course!) to one of your programs. Should you change the line numbers, be
sure to change them in the THEN and GOTO statementsas well. Ifyouhave
any previous DATA and READ statements, makesure they won't interfere
with the subroutine’s initialization; you may have to move lines 2025 to
2099 near your other R AD looy
thesubroutineso that you can view different partitionsand sub-directories
on CMD devices. Hint: Build a path string in the OPEN statement,
you can edit
pert programmers: see
Notes
Asyou type in this issue’s program, take it one section ata time. 11
a general idea of what the section is trying to accomplish. See if
follow how the section is using its riables. Ifyou see an unfamiliar BASIC
statement, take a quick look at it in your BASIC manual, If you are still
confused, move on to the next section; often times the next section helps
explain the previous one, Above all, back your work up frequently!
y to get
pu can
Entering The Program
Before entering this issue's program, load and run the CHK-LIST utility
(located elsewhere in this issue), CHK-LIST insures that you enter the
program correctly the first time, Also, remember to SAVE the program
before you attempt to RUN it, Itnever hurts to be safe,
MLDIR.BAS
5000 | 100
6dc2 | 105 rem commodore world magazine
c67c | 119 rem basic instincts w/gene barker
c38b | 115 rem using ml subroutines
@e6b | 120 rem
2d24 125 rem (c)1995 creative micro gns
92ad | 130 rem a
1315 135 rem-
63fa | 140 rem display program name
e243 | 145 rem-
6bel 15@ print" (CLEAR/HOME} {CRSR DN}sample di
rectory driver"
Issue 11
1315
7180e
£9bb
88a7
243
92fc
dd7b
elec
67b7
e6bd
6ab5
992
554c
Ob3d
ee65
da6b
657b
falc
e046
5291
ald2
5291
2703
5291
213e
4936
ef2a
£939
dalb3
9673
966b
bi3£
d85a
£580
3d5a
cO54
ab£5
8£05
d870
1de5
4e32
6647
6cde
03c6
Bla9
21403
7Obd
6dg2
eddc
e143
£6£0
799
a9ce
£774
agd3
£774
4985
9c11
229¢
£19e
5204
9fbe
588
b2£8
rem get the desired drive #
rem-
print"(CRSR DN}enter drive # (8-31):
input xd
if xd<8 or xd>29 then end
rem-
rem get desired directory method
rem (pure basic or ml enhanced)
rem-
print"(CRSR DN}use which directory r
outine:"
210
215
220
225
230
235
240
245
250
255
260
265
270
275
300
305
310
315
ain
320
the
325
330
335
340
print"{CRSR DN}(1) pure basic"
print"(2) basic w/ml enhancement"
get x$:if x$="" then 220
if x$<>"1" then 255
rem-
rem use pure basic option
rem-~
gosub 1000
: goto 300
if x$<>"2" then 220
rem-
rem use basic w/ml
rem-
: gosub 2000
rem-
rem ask if user wants to try again
rem-
print"(CRSR DN}do you wish to try ag
(y/n)?"
print"{CRSR DN}note:
ml version"
print*at least twice.”
get x$:if x$="y" then 185
if x$<>"n" then 330
end
be sure to try
1000 rem--------------------=----------
1005 rem display directory (basic
1010 rem
1015 rem given: xd - device number
1020 rem-------------------------------
1025 print chr$(147);
103@ open 5,xd,9,"$"
1035 get#5,xx$,xx$
1040 get#5,xx$,xx$
1045 print
105@ get#5,x1$,x2s
1055 if st=@ then 1085
1060 : close 5
1965 : print
1070 : print" [return]"
1075 : get xx$:if xx$<>chr$(13) then 107
5
1080 : return
1085
1090
“ then x1l$=chr$(0)
“ then x2$=chr$(@)
1095 print mid$(str$(asc(x1$)+(asc(x2$)*
256))+"(5 SPACES)*,2,6);
1100 get#5,xx$:if xx$=chr$(32) then 1100
1105 print xx$
1110 get#5,xx$
1215
£ xx$=""_then 1040
print xx$;
1120 goto 1110
2000
2005
2010 rem
2015
2020
2025
2030
rem-
rem make sure ml is setup
Volume 2, Number 6
49
LOAD2.BAS (cont.)
rem-
xa=52864
if xv=999 then 2100
print:print"initializing ml.
xi=O:xc=0
read xv
if xv=999 then 2080
poke xa+xi,xv
: xi=xi+1l:xc=xc+xv
: goto 2055
if xi=280 and xc=36966 then 2100
print error in data statements
end
rem-
rem setup ml call
rem-
print chr$(147);
open 5,xd,0,"$"
sys xa
close 5
rem-
rem wait for a return
rem-
print
print"{CRSR DN}[return]"
get xx$:if xx$<>chr$(13) then 2160
return
rem-
rem ml code
rem-
data 162,5,32,198,255,162,0,134
data 144,32,193,206,32,193,206
data 32,193,206,32,193,206,169
data 13,32,210,255,32,193,206
data 141,151, 207,32,193,206,174
data 151,207,168,169,6,32,240
data 206,32,193,206,201,32,240
data 249,32,210,255,32,193,206
data 240,212,32,210,255,76,182
data 206,32,207,255,166,144,240
data 24,224,64,208,6,104,104
data 32,204,255,96,104,104,32
data 204,255,169,13,32,210,255
data 32,210,255,96,170,96,142
data 147,207,162,0,142,148,207
data 142,149,207,76,254,206,142
data 147,207,140,148,207,162
2 data ©,142,149,207,76,254, 206
data 141,150,207,173,147,207
data 174,148,207,172,149,207
data 133,40,134,41,132,42,169
data @,141,146,207,162,21,160
data 255,200,165,40,72,56,253
data 122,207,133,4@,165,41,72
data 253,123,207,133,41,165,42
data 72,253,124,207,133,42,144
data 6,104,104,104,76,25,207
2 data 104,133,42,104,133,41,104
data 133,40,152,172,146,207,208
data 7,201,0,240,11,141,146,207
data 9,48,32,210,255,206,15@
data 207,202,202, 202,16,185,173
data 146,207,208,8,169,48,32
data 210,255,206,150, 207,173
data 150, 207,240,9,170,169,32
data 32,210,255,202,208, 250,96
data 1,0,0,10,0,0,100,0,0,232
data 3,0,16,39,0,160,134,1,64
data 66,15,128,150,152,0,0,0
data @,0,0,999
COMMODORE WORLD
Peripheral Vision
The BASIC Null
Therearetimeswhen you read information from
a devi
are the NULL character (character
zero) or no character at all. These are not as
sharply defined as you might think
When a BASIC program reads a binary file or
a program file from disk, it’s likely to input Null
characters, what BASIC would call CHRS(0). It’s
guaranteed if you're reading another BASIC
program. But BASIC does a nasty thing when it
sees such a character: it throws it away and gives
youa “null string’—no character at all. There’s
i y work-around for this, but first let's see
BASIC behaves this w
Suppose you're reading the keyboard using
the BASIC GET command, This command
returns right away, even ifthere's no key input
waiting in the keyboard buffer, The BASIC
interpreter asks the operating system for data
from the keyboard buffer; the operating
system cither delivers a character or a binary
zero, which means “no character” (you can’t
usefully generate a binary zero from the
keyboard). When the BASIC interpreter sees
the binary zero, it correctly identifies this as
no-key, and converts what would be a single
character string, CHRS(0), into no-character,
anull string. But the same mechanism is built
into the GET# command that may be used to
d disk files, with the result that binary zeros,
received from such a file are thrown away.
“nothin,
Fixing Those BASIC Nulls
You always get a character when you're reading
a file from disk. Even if you've foolishly gone
beyond the end of the file, you'll still get back a
RETURN character, CHRS$(13). ce the
computer will never encounter a no-character
condition duringa disk file read, there are several
ways to fix the BASIC “null-character to null-
COMMODORE WORLD
e but get nothing. The two types of
By Jim Buttorfiold
MUCH ADO ABOUT NULL
string” anomaly. Assume we're about to read a
character from logical file 1. We might code:
HRS (0)
We'll work this coding into a program, but let's
look at another alternative. Oft
analyze a binary filein terms of the numeric value
ofthe bytes. To extract thenumber, we would use
the function ASC(C$). But—except on the 128—
that function won't work with a null string: the
program will stop with an error. We could fix this
problem with thesame IF CS="" trick given above.
Or try this:
we want to
#1,C$
V=ASC (CS+CHR$ (0) )
If C$ is not null, the ASC function extracts its
value; it looks only at the first character of a
string. ButifC$isanullstring, then theexpression
inside the parentheses becomes simply CHRS(0),
and the function returns the correct value of zero.
It’s faster to define CHRS(0)asa variablenear the
beginningofyour program. You'll get betterspeed
with jable in the working loop.
Demo Program 1
Program 1isabriefprogram which will copy afile
and not be bothered by any binary zeros. If you
save it as MYPROG, it will copy itself when run.
Without line 210, those binary zeros would
not copy and you'd have a mess instead of a
duplicate program. Now let's write a program to
analyze another BASIC program, digging into
the numeric values of the bytes (see Program 2).
The program will report each line within the
BASICprogram, and where thelinewill be placed
in memory (assuming the load address is
honored).
50
Machine Language
‘The above anomaly reverses if you're coding in
machine language. The call to GET (at $FFE4)
returns a value in the A register, The program
knows if it’s seeking information from the
keyboard, in which case a zero v
“no key” and may be handled accordingly. If the
program is reading a disk file, a zero byte in A
is valid data, and will be handled in the usual
iy. Incidentally, a call to INPUT (at SFFCF)
works exactly the same as GET for file reading,
but not for keyboard/screen input,
ue in A means:
The RS-232 Conundrum
There is peripheral: the RS-232
communications port, that wants it both ways.
There might not be any characters waiting; or a
legitimate CHRS(O) might be delivered asinput.
we must look at how the computer deals with
one
Program 1
100 Z$=CHRS (0)
OPEN 15,8,15
OPEN 1,8,2,"®:MYPROG, P, R”
INPUT#15,E, ES
IF E<>@ THEN PRINT E$ : STOP
OPEN 2,8,3,"@:MYCOPY, P,W"
INPUT#15,E,ES
IF E<>@ THEN PRINT E$
STOP
REMARK: MAIN LOOP HERE
GET#1, A$
S=ST :REM SAVE STATUS FOR
TEST
IF AS$="* THEN A$=Z$
PRINT#2,AS;
REMARK: DO NOT FORGET THE SE
MICOLON ABOVE
240 IF S=@ GOTO 190
250 CLOSE 2
260 CLOSE 1
270 PRINT “FILE COPY FINISHED."
280 CLOSE 15
cLOS.
Issue 11
this port. The following deals with the“standard"
RS-232 interface of the VIC-20, Commodore 64,
Plus-4, and the C128, Special interfaces, such as
SwiftLink, are not part of the description.
In all of these machines, characters that
arrive ata “live” RS-232 port are placed into a
rotating buffer, usually 256 bytes in size, The
interrupt system stores the next character by
means of a “put-‘em-in” pointer. When asked
for a character from the RS port, the
system uses a “take-'em-out” pointer to select
the next character from the buffer. If the two
pointers match, the system knows that there
areno characters waiting, and returns binary
zero... Which you might confuse witha received
NULL character.
Figure 1
The RS-232 receive sequences store incoming
characters intoa rotating bufferuntil the application
program takes them out. If the two pointers are
equal, there are no characters waiting,
“take-'em-out"
| pointer to
“put-em-in" application
pointer from programs
NMI interrupt
Volume 2, Number 6
Program 2
190 Z$=CHRS (0)
11@ INPUT “BASIC PROGRAM NAME"; PS
120 OPEN 15,8,15
130 OPEN 1,8,2,"0:"+P$+",P,R”
149 INPUT#H15,E, ES
150 IF E<>@ THEN PRINT E$ : STOP
160 GET#1,A$,BS
170 X=ASC(AS+ZS)
180 Y=ASC(BS$+2$)
190 IF X<>1 THEN PRINT “MAYBE NOT BASIC?”
200 LaX+256*Y
21@ PRINT “LOAD ADDRESS = “;L
220 REM: MAIN LOOP, LINK AND LINE NUMBER
230 GET#1,A$,BS
240 KO=ASC(AS+2$) + 256*ASC(BS+2Z$)
250 IF K®<=L GOTO 360
260 GET#1,AS,BS
270 LO=ASC(AS$+Z$) + 256*ASC(BS+Z$)
280 PRINT “LINE";LO;"AT ADDRESS” ;L
290 LeLed
300 IF L@ < Ll GOTO 360
310 Li = LO
320 GETW1,A$
330 L=L+1
340 IF ASC(A$+Z$)<>0 AND ST=0 GOTO 320
350 IF ST=0 GOTO 230
360 IF KO<>O THEN PRINT “FILE PROBLEM! *
370 CLOSE 1
380 CLOSE 15
39@ PRINT “FINISHED. "
VIC - 20 and Commodore
Commodore 128 (bank 0)
Plus-4
put-‘em-in take-‘em-out
64 667 668
2584 2585
2001 2001
Figure 1 shows the idea, One
pointer puts received characters
into the buffer, and the other is
used to get the
they are needed, The butte
the Plus-4 is 64 bytes in size,
versus 256 bytes on all other
machines, Thatseemsunfair; the
Plus-4 with its ACIA chip has
the highest communications
capability of any of the 8-bit
Commodore computers,
‘The two pointers: put-'em-in
and take-em-out, are each one
bytein size. Theirlogicis carefully
arranged: ifthe buffer fills up, the
pointers won't “cross” so that
you'll lose everything, Of course,
you'll lose some characters since
there's no place for them. The
solution is to check to see if the
two pointers are equal. If they are, you have no
characters waiting, and your program can go on
to other work. If the two pointers are not equal,
you may command GET# and be sure—even if
it's a NULL—that you have received a valid
character,
The only useful test you can perform on these
pointersisforan equals condition. The characters
are placed into a “rotating” buffer, so either
pointer might have a value higher or lower than
theother. Also, the put-'em-in pointerisinterrupt
driven: it might change as you are testing it!
aracters when
for
Pointer Location
The address of the two pointers is not the
same in all machines. The table below is a
summary of their addresses. The addresses are
given in decimal, suitable for BASIC use.
Remember in BASIC, you still have to convert
any received null strings to CHRS§(0)as discussed
above. The code would go somethinglike this for
a Commodore 64 or VIC-20;
100 OPEN 1
.« then, within a loop:
500 IF PE
600
Goro
K (667)
PE
(668)
:REM IF NOTHING
900 ¢
The approach in machine language is almost
identical. Thesubstitute forlines 500 to520above
might read as seen in Program 3, below,
Short Notes
| should mention that there is no problem with
outputting NULL characters, as you may have
guessed from programs above. Send a CHRS(0)
and it will get to its destination unless you're
sending it to the screen, where it will do nothing.
Some users are confused about the difference
between NULL, binary zero, and the'0’ character
on their keyboard, Just keep in mind that the ‘0°
character is really character number 48
(hexadecimal 30), so it’s distinct from the NULL
Program 3
PUTEMIN = $298
TAKEMOUT == $29¢
LDA PUTEMIN
CMP TAKEMOUT
BEQ ... ; (branch if no character)
LDX #801 logical device 1..
JSR $FFC6 «-CHKIN, connect input stream
JSR SFFE4 .-GETIN, get the character
PHA ; save the character on stack
JSR $FFCC + .,CLRCHN, restore input stream
PLA 7 restore input character
51
COMMODORE WORLD
Our first steps in machine language will emphasize debugging. It's good to
confirm that your program works correctly, step by step, and to explore
how instructions work,
Our universal tool for this work will be a Machine Language Monitor
(MLM). On the Commodore 128 or Plus-4, you have one built in; on other
machines, you'll need to load one. I suggest you try the public domain
MLM, “SuperMon”. Its operation is very close to that of the built-in
monitors, so we can all use the same commands and see comparable
display data
SuperMon" is largely for the Commodore 64, But other versions are
around on networks and bulletin boards. There’sa tiny one for the VIC-20;
tiny because of the small memory on that machine, and also trimmed to fit
into the limited screen width. The old PET/8032 computers havea built-in
machine language monitor, but these are not fully featured. For example,
there’snoassembler/disassembler builtin, So there'sa version ofSuperMon
for those machines, too,
With an MLM, youcan enter program code, you can check code, you can
save it, and you can examine how it runs. Most MLM packages contain a
“tiny” assembler, which we'll use here. Ifyou happen tohavea full-featured
“symbolic” assembler, you can use it to prepare the program if you wish,
but for debugging you'll need to come back to the MLM. By the way, other
platforms call the MLM a “debugger"—it's really the same thing,
About Registers
The 6502-class chip that powers all Commodore 8-bit computers contains
storage areas—called “registers"—within the chip. Three are used for data:
they are named A, X, and Y, and we'll talk about them in a moment, One
register (SP, “stack pointer") is used for the stack; we won't worry about it
right now. Another is called PC, for “program counter”; it shows us the
address in memory where the processor will look for its next instruction.
On other platforms, the PC may be called 1P (“instruction pointer”).
led the SR (“status register”). It holds the
results of recent tests, and also certain processor control information. We
Finally, there’s a register ¢
may need to look at this one during debugging sessions.
Figure 1 shows the registers that are inside your processor chip. All
exeept the PC are eight bits long; that means they can hold a value from 0.
to 255 (hexadecimal FF), or, if'you like, an ASCH ch
Register A is sometimes called the “accumulator”; registers X and Y are
often called “index registers”. Any of the three can be used to hold data;
you can load it in, test its value, and store out a copy. We'll use a couple of
them in the short program given here.
eter,
COMMODORE WORLD
52
FIRST REGISTERS, FIRST DEBUGGING
Planning the Program
Ourfirst program will reverse the contents oftwo locationsin memory, It's
a start, and you'll have a chance to do programming and debugging,
We need to pick a location for this short program. Because of the wide
variety of machines that might be used, I'll pick the area around address
8192, hex 2000, which is available on most machines. (On an unexpanded
VIC-20, you'll need to pick a lower address, say 7424, or $1D00).The two
data locations can be any convenient placein RAM. Ifyou havea “memory-
reen, you might pick a couple of addresses there, so that you
can actually see the characters being swapped ,. but that won't work on the
80-column C128, of course $2100 and $2101.
mapped" s
for the moment, I'll choo:
Getting Started
Ifyou don’t have a built-in Machine Language Monitor, load one in. With
SuperMon, for example, you load the program, command RUN, and you're
in business. With the Plus-4 or Commodore 128, just command MONITOR,
You'll see a display of the processor's registers, Ignore them for the time
being. Type the following command:
A 2000 LDA $2100
When you press [RETURN], you might be surprised to find that the above
line has been changed, First, let's look at what you have type:
A-stands for Assemble. The instruction you type will be translated into
machine code.
2000 - is the address at which you wish to assemble this instruction,
It's 2000 hex, ordecimal 8192, Ifyou don't tell it otherwise, the MLM will
always assume hexadecimal. Most versions of SuperMon and other
monitors willallow you to enter decimal by puttinga +’ sign ahead of the
+8192 LDA +8448 and produce the same
value, so that we could cod
result.
LDA-acommand to Load the A register, The data loaded will be a copy:
the original value will still be in memory,
$2100 - the address from which to load. You could omit the 'S’ symbol,
since the MLM assumes hexadecimal.
Issue 11
When you press RETURN , the line you have typed changes. To the left of
the LDA command, you'll see three bytes of information—the translated
command as stored in memory. And if you happened to put in any values
in decimal, using the ‘+’ sign, you'll find they have been changed to hex.
Additionally, you'll find that the MLM has typed part of the next line for
you: ‘A 2003’, This helps guard against you miscalculating the address
where the next instruction is to go. Complete this next line with the
command NOP. That's an instruction that does NOTHING. Seems like a
waste of processor time and memory, but it will help with our testing later.
Our plan is to load A and X with the two values to be swapped, and then
store the register contents back, the other way around. Here's what the
lines you type in for the rest of the program should look like:
2004
2007
2008
2008
200C
200F
2010
LDX
NOP
STA
NOP
STx
NOP
RTS
$2101
$2101
$2100
>>> D> DD
You can guess LDX to be “load X”, and STA, STX to be “Store A, Store X”
respectively, I Return from Subroutine”; it will take the program
back to who will normally be Basic.
Even though you're finished, the MLM will continue to prompt you with
‘A 2011, just press RETURN to signal that you're finished. The program
has been stored in memory as you type. You can double check it by
commanding: D 2000 2010 (‘D' stands for Disassemble),
Keep in mind that we have not executed any of the instructions; we've
just put them in memory, ready torun. Type to see the registers again and
you'll see that nothing has changed. Now return to Basic with command: X
(for exit’).
Running
Set the two locations in memory with POKE commands:
POKE 8448,0
POKE 8449,200
Ifyou wish, you may check these values using PEEKQ. Or you can return to
the MLM, and check the memory locations with M2010 2011; you'll see the
first two bytes as 00 C8,
From Basic, command SYS 8192. You'll get READY right aw ay, the
program has run in an instant, PEEK addresses 8448 and 8449 , you'll see
their contents have been reversed! SYS 8192 again, PEEK again, and the
values are back where they started.
Testing and Debugging
Let's go back tothe MLM and disassemble the program with D 20002010,
Move the cursor up carefully, and change each NOP to BRK; just type over.
Press RETURN on each line you make the change. BRK stands for “Bre:
we're going to stop the program at each point. When you're finished, back
to Basic, and command SYS 8192 again,
This time the program stops at the first BRK instruction. That's at
$2003, and the PC should be pointing at the following instruction, at
$2004. As you'll see from the register display, it’s pointing at $2005
Volume 2, Number 6
53
instead, That's an anomaly in the BRK instruction, nothing to worry
about.
Again, it’s convenient to type D 2000 2010 again ifyou want to see your
program, You can see that we have executed the LDA instruction, and the
Aregister (AC) contains the value copied from address $2100. It's probably
zero, ifyou've been following the instructions closely, and thatallows us to
check something else: the Status Register (SR).
Status Register
Figure 1 shows that the Status Register is made up of eight bits, each of
which has a distinet meaning, We'll be concerned only with the high bit,
dN (“negative”), and the two lowest ones, marked Z (“zero”) and C
(“carry”). You'll likely see a value of $32 in the register, so we must change
this to binary to see the bits, That's easy with hexadecimal; 3 is 0011, and
2 is 0010, so we see that N is 0, Zis 1, and Cis 0.
After every register load or change, the Z flag is adjusted to reflect if the
value is zero (yes, so flag Z is 1.), and the N flag is adjusted to reflect if the
value’s high bit is on (no, so flag N is 0.). A register load command won't
change C, so we ean ignore that flag ; it won't change during this program.
Weexpect thenext value to be loaded (to X) will be $C8, binary 11001000,
That's non-zero, and its high bit is on, so we expect to see flag Z offand flag
Non. Continue the program with: G 2004. You're likely to get a SR value of
BO—binary 10110000—which confirms flag N as set and flag Z as clear.
‘The value in XR will have changed, since data has been loaded in there; the
value in AC will be the same.
“Store” commands never affect any flags in the status register. So try
continuing with command 2008 and G 200C and you'll see that the
value in SR stay y, G 2010 takes us back to Basic.
s the same, Fina
Summary
Writing a program is only part of the job. Testing it, to make sure it does the
right thing, is the other part. If you know your way around the MLM, you
can not only test your programs effectively. You can also see in detail how
commands work. The logic need not be fuzzy. With good use of the MLM,
the computer will always tell you what it is doing.
Incidentally, ifhexadecimal and binary still fog you, take some time out
and try to learn it. You'll be that much more effective in programming and
testing if you become a “hex nut”,
| pe | ;
A ene \
ack Wag tacens
yom
Negative
Overf lou
Carry
Zero (Equals)
TRO lockout
Decimal Mode
Break
Figure 1. Registers
inside the processor chip.
COMMODORE WORLD
How to Type In Program Listings Appearing in
Commodore World
While Commodore World currently doesn’t make it a habit of publishing
type-in programs, a number of our columns do require entering sample
routines. For this purpose, we have created our CHK-LIST utility for the
Commodore 64 and 128. This utility uses a 16-bit CRC checksum method
to verify that you have correctly entered each program line, and that each
of the characters in the program lines are in the correct order.
You'll notice that program listings appear with a column of values to the
left of the program lines. These values are the CHK-LIST values and are not
to be entered as part of the program. A similar set of values are generated
by the CHK-LIST utility to allow you to verify that everything has been
entered correctly.
Enter the CHK-LIST program from BASIC, You can use either a C-64 or
aC-128 computer. Ifyou use a C-128, it can be in either 64 or 128 mode. Be
sure to enter each line carefully to avoid mistakes—until you actuall
CHK-LIST working, finding errors in program entry won't be easy. After
you have finished entering the program, be sure to SAVE a copy to disk
before you attempt to RUN it, justin case. Ifyou aren't familiar with howto
save a program to disk, you can use the following command:
10 BS (PEEK (65533
NM=4864
6E2F | 12 C=: PRINT" (CLR/HOME) WORKING";
E350 | 20 READD: IFD=-256THEN4O
AD2@ | 30 C=C+D: IFD<@ANDF=OTHEN20
3316 | 31 IFD<OTHEND=9-D:M=M-1
Q7FO | 32 POKEM,D:M=M+1: PRINT". "3:
578A | 49 PRINT: READCK: IFC<>CKTHENPRINT"ERROR I
N DATA STATEMENTS! *: END
@679'| 50 PRINT" DONE.": END
8D92 | 60 :
BYFE | 49152 DATA 165,43,-45,133,251,165,44,-46
133,252
B2AE | 49160 DATA 169,0,141,36,193,-20,169,147,
32
CD50 | 49168 DATA 210,255,32,194,192,-19,160,0,
140
€9CD | 49176 DATA 37,193,-20,177,251,133,253,20
8,3
2058 | 49184 DATA 238,37,193,-20,200,177,251,13
3,254
BA9C | 49192 DATA 208,3,238,37,193,-20,173,37,1
3,-20
6C15 | 49200 DATA 201,2,208,1,96,200,177,251
B7@E | 49208 DATA 170,200,177,251,32,205,-50,18
9,-142,169
6795 | 49216 DATA 6,133,211,-236,169,61, 32,210,
255
FOF | 49224 DATA 169,32,32,210,255,160,2,177
9735 | 49232 DATA 251,32,213,192,-19,200,177,25
1,32
9734 | 49240 DATA 213,192,-19,200,177,251,240,6
+32
D99D | 49248 DATA 213,192,-19,76,90,192,-19,173
,191,192,-19
AC3O | 49256 DATA 32,167,192,-19,173,190,192,-1
[ 9,32,167
COMMODORE WORLD
54
Touse CHK-LIST, load itinto your computer and type RUN. Makesure that
any program youare currently working on is saved first, or start CHK-LIST
before you begin typing in a new program. After you have CHK-LIST in
memory and running, type NEW. You may now either load or begin typing
the program you wish to have CHK-LIST check on. Whenever you want to
check your program, type in the appropriate SYS command given below:
C-64 or C-128 in 64 mode:
C-128 in 128 mode:
SYS49152
SYS4864
Note that when typing in listings, some special characters will appear in
braces. For example, (CLR/HOME} means that you should enter the Clear
key, which is done by holding down the SHIFT key while you press the
HOME key. Other tim ee anumber ahead of the key name, such
as (3 SPACES} or (5 CRSRL). Thismeans you should press the key indicated
the number of times shown. Most special keys are easy to identify, since the
text shown will generally match the text on the key, Exceptions are the space
bar {SPACE}, and cursor keys which include directions ((CRSR UP}, {CRSR
DN}, (CRSRL} and {CRSR RT). Besure to use the correct key combinations
for color keys, such as <CTRL><2> for (WHT).
CHK-LIST (cont,)
49264 DATA 192,-19,169,13,32,210,255,165
+253
49272 DATA 133,251,165,254,133,252,238,3
6
49280 DATA 193,-20,173,36,193,-20,201,20
1240,3
49288 DATA 76,18,192,-19,162,0,189,1,193
720
49296 DATA 240,6,32,210,255,232,208,245,
32
49304 DATA 228,255,201,13,208,249,32
49312 DATA 228,255,208,251,76,8,192,-19,
72
49320 DATA 106,106,106,106,32,180,192,-1
9,104
49328 DATA 32,180,192,-19,96,41,15,170,1
89
49336 DATA 20,193,-20,32,210,255,96,0,0
49344 DATA 0,0,169,0,141,190,192,-19,141
49352 DATA 191,192,-19,169,33,141,192,19
2,-19,169
49360 DATA 16,141,193,192,-19,96,162,8,7
2
49368 DATA 41,127,77,191,192,-19,141,191
,192,-19
49376 DATA 24,14,190,192,-19,46,191,192,
-19,144
49384 DATA 18,173,192,192,-19,77,190,192
,719,141
49392 DATA 190,192,-19,173,193,192,-19,7
7,191,192,-19
49400 DATA 141,191,192,-19,104,10,202,20
8,215
49408
49416
49424
49432
49449
DATA 96,13,80,82,69,83,83,32
DATA 60,82,69,84,85,82,78,62
DATA 13,13,13,0,48,49,50,51
DATA 52,53,54,55,56,57,65,66
DATA 67,68,69,70,0,0,-256,37944
Issue 11
ChAD Service Center
AFFORDABLE ¢ FAST « DEPENDABLE
Call Today 1-800-638-3263
Our Team of Technicians are Among the Most
Qualified in the Industry!
Why Settle for Anything Less Than the Best?
We repair the following equipment: Commodore C-64, 64C, SX-64, C-128
and C128-D computers; 1541, 1541C, 1571 and 1581 Disk Drives plus
CMD Devices. JiffyDOS Installations a specialty. All repairs warranted for
30 days. Minimum charge $35.00 plus parts and return shipping. Contact
CMD for authorization before sending any equipment.
Creative Micro Designs, Inc. P.O. Box 646 E, Longmeadow, MA 01028
UPGRADE YOUR COMMODORE:
Rofurbished Hardware Hew! a
Monitors Other New APR los
1701 $169.95 1541/C $99.95 C64- $99.95, PE TTT $118.98
1702 $169.95 41 wiDips $114.95 64C- $119.95 Usor Switch $44.95,
102, $1000 Is4isI" §12005 128 $170.95 Convar-A-Com $46.95
18020 $200.95 1571 $169.95 1280 §320.95
Taam up al SIGE 1, SUE | Now CMDILMS Accossorion:
1902A $259.95 MSD-2 $149.95 1660 $24.95 JWDog iazaD ‘System «$79.98.
1084 $299.95 1001SFD $129.95 1670 $99.95
1084S $339.95 B.| Buscard-tl $59.95
Mono’s $49.95+ 1530 Datasetta $39.95
128Kernal $59.95 64 Kernal $49.95
Additional JitfyOOS Drive ROM $39.95,
RAMLink Bs, $239.95 clwOMB $289.95,
CwW1MB | $319.95 cw 4MB $449.95
$49.95+ Real Time Clock (Optional) Add $29.95
$34.95 FD.2000 $249.95 FD-4000 $349.95
$49.95 NEW Supor Snapshot v5.22 $89.95
$199.95 1750 Supercione REU 512K $199.95
‘Books$10-$15 Printer Intertaces:
Prog’s $5-S20 _ Epyx Fastload Cartridge
Repairs SASK Super Snapshot v4
Manuals $7 Super Gratix Jt
‘Ask For Anything! We May Have itt
LP. PAM Products By Mail
Box# 60515, N. Shoridan Mall PO
Downsview, Ont. Canada M3L.180 Allow 4-6 wooks for delivery
Tax-Canada + 7%GST, Ontario +8% PST 1995 Catalogue Disk (64 Format) — $2
Shipping-(S0-$25=$4, $26-899=10%, $100-§199=8%, $200-$499=7.5%, $500+=6%, USA=15%)
E X P A N OD
YOUR SYSTEM
5B SLOT CARTRIDGE PORT EXPANDERS
The EX2+1 and EX3 Cartridge Port Expanders bring new
expandability to you Commodore 64 or 128. Combine the
use of compatible cartridges. Disable cartridges notin use.
Change the address your computer finds a cartridge at.
Avoid the constant changing of cartridges that puts extra
wear on your cartridge port. The EX3 offers 3 vertical
expansion slots, while the EX2+1 provides 2 vertical slots
and 1 horizontal slot. Both units offer 7 switchable signals
per slot, address mapping on slot 2, and a reset button.
CALL 1-300-638-3263
‘Sond GON Funds/15% USA Exchange
15 day Warranty On Returbished Haw
$29.95
Creative Micro Designs, Inc., P.O. Box 646, East Longmeadow MA 01028
Volume 2, Number 6
SODAK ELECTRONICS INC.
Nintendo® and Sega® Repair and Parts
Authorized Commodore Qualified Service Center
Computer Monitor and Printer Repair - All Types
Flat Rate on Most Repairs
Nintendo® and Sogar® are Registered
Trademarks of Nintondo of Amarica
and Sega of Amorica rospactvoly,
800-201-3004
Lamar Nance
603 S. Mable, Sioux Falls, SD 57103
(605) 335-3004
MOVING?
> PP PP PP
Don't forget to let us here at
Commodore World know!
Call or write with your change of address
6 to 8 weeks prior to your move so that
you won't miss a single issue!
55 COMMODORE WORLD
ADVERTISERS
C64/128 PUBLIC DOMAIN. REQUEST FREE CATALOG OR
SEND $2 FOR A DEMO & CATALOG. CALOKE IND., P.O.
BOX 18477, RAYTOWN, MO. 64133. VISA-M/CARD
ACCEPTED.
C-64 FOREIGN-AMERICAN Utilities, Graphics,
Hacker, Arcade. 32¢ stamp gets catalog. Home- ISP a. ssnenesas 05)
Spun Software, POB 1064-CW,Estero,F 3928 Caloke Industries . . (Classified) 56
Centsible Software .
Commodore Country.
Commodore World....
Computer Bargain Store
Creative Micro Designs 5,30,31,34,41,43,55,
GEOS PUBLICATION. The exclu
publication. $8.50 yearly, $16.00
years. Feb. 1st 1996 rates become $12.0
and $20.00 for two years. Join NOW and
GRASSROOTS #1. C= history, hardware, help on
full 2 sided info disk. Send $3. & system info . Back Cover
to Donald Ayers, 75 State Rd. 270W, Sturgis, KY | Creative Pixels we 85
ead Home-Spun Software . (Classified) 56
Reconditioned C64 and 1541 Disk Drive also some GEOS Publication .. (Classified) 56
used Commodore parts. For information send a Intercorp 235
SASE to Chuck 30102 Pacific
Nigel, CA 92677.
and Dr., Laguna | J.P. Products by Mail 55
Loadstar ..
RUN, Ahoy, Commodore, COMPUTE!’s Gaz., | MadMan Software.
Transactor, Home Comp., High Tech., INFO, etc. Paxtron..
D. Marquis, 477 Church Rd., Palmetto, FL 34221
8426, 941-722-8426.
Software Support Int. Inside Front Cover
SUBSCRIBE to Commodore Gazette; Christopher hs Underground “ SS
Ryan; 5296 Devonshire; Detroit, MI 48224-3233; migne!,
lyr, $12 / 2 yr. $24 / 3 yr. $36. - 85
FOR SALE
$290, SMAF R
CONDITION. 815-259-2816.
RUN magazine, all issues 1987 thru 1992. Don't forget to let Commodore World know.
Commodore MPS 801 Printer, 1541 drive. r. | Call or write with your change of address 6 to
Elliot 228 Star Hill, Swansboro, NC 28584 8 weeks prior to your move so that you won't
Wanted to Buy Voice Synthesi for the C64. miss a single issue!
Prefer Hearsay 1000, but will take any that can
speak AND hear voice commands. 813-914-5410
(beeper) « DON’T WAIT UNTIL IT’S
WANTED: Leader Board Tournament Disk TOO LATE—
World Class Leader Board. Reply to: 810-744- RENEW EARLY!
4093 (Roger).
|s your Commodore World Subscription getting close to running
out? There's an easy way to check. Look at the mailing label on
the front of your copy. There you'll find your subscription number
COoOMMoOoDOR&
WwoRlD
Classified Advertising
Subscribers may place non-commercial classified
and the expiration issue number. For example:
James Smith 12345ExP12
123 Home Street
Grand Rapids, MI 49502-0123
advertising in Commodore World at a cost of $10.00 per
issue. Your advertisement may contain up to 150 characters
(including spaces). Commercial ads are $10.00 per line
(45 characters). Send your advertisement with payment
to: CW Classified Advertising, c/o Creative Micro Designs,
Inc., P.O. Box 646, East Longmeadow MA 01028-0646.
Jim's subscription will run out with Issue 12, as indicated by the
EXP12inhissubscription code. Jim would be wise to re-subscribe
early to avoid missing a single issue of Commodore World!
COMMODORE WORLD 56 Issue 11
|
J
:
y
1] TOUG
CALESCND )
re
163902593545
fo Supserigs
D conmosor World is the publication
that will keep you informed in these times
when up-to-date information on
Commodore computing is so hard to find.
Published by Creative Micro Designs, the
industry leader in development of
Commodore-related products for over six
years, Commodore World will supply you
with information on what's new, what's still
available, and above all else—where to
get it. If you felt you had nowhere to turn
to for Commodore support, turn to the
pages of Commodore World for a wealth
of resources ready to help you get the
most from your computer!
You'll find Commodore World feature
articles informative and easy to read;
what's more, they're written by leading
authorities and experts, many of whom
have written for other Commodore-related
publications in the past. And Commodore
World has something for everyone,
whether you're a novice or an experienced
programmer.
, «x emZ iat Je
33
And while our feature articles help to
cover different subjects in each issue,
regular columns provide on-going insight
into topics of interest to most users. You'll
find columns that cover BASIC and
advanced programming, and even a
column for GEOS programming. And if you
prefer being a GEOS user to being a
GEOS programmer, you'll find another
column devoted to helping you get more
out of GEOS. If you want to learn more
about using and programming the various
peripherals on your system—you guessed
it, we've gota column for that as well. Even
first-time Commodore users will find a
column devoted specifically to their needs.
And there's even more. Departments
that cover news, telecommunications,
reviews of available hardware and
software; even news of what's happening
in other Commodore-related publications!
So, if you really want to get the most
from your Commodore, there's no better
way to get it than Commodore World!
Columns
Just For Starters - An introduction to the C64/
128 by Steve VanderArk
Foreign Exchange - An inside look at the market
in Europe by Joseph Gaudl
Graphic Interpretation - GEOS, GEOS and more
GEOS by Steve VanderArk
geoProgrammist - GEOS programming
techniques by Maurice Randall
BASIC Instincts - BASIC tutorials and type-in
programs by Gene Barker
dim Butterfield's ML Column - Probably the best
known name in our industry, Jim covers every
aspect of programming in ML (coming soon)
Peripheral Vision - Technical insights to C-64/128
hardware peripherals
Carrier Detect - Exploring every facet of the
Telecommunications experience
Over The Edge - Editorial covering various
computer related topics and news
Departments
From The Editor + BackTalk * On The Horizon
Just Asking * The Connection * Top Tips
User Group Connection + Commodore Trivia
BBS Spotlight * Classified Ads
CF” EB E Sa Ed CS
‘Get ready td’ blast.off in February ’96!
CMD is going to take you where
no C-64 user has gone before.
in!
ANI
en contacting CMD in
rs to voice their
port tor the Super CPU and {fi j
request developer packages. : m Ric wkonanl
le are very enthusiastic with ‘a P ; \ serial
el response and look forwai
| owitle-spregal support!
ae FUREU [Can /exp
i Compatible] _ Port
‘urboMaste
cPU it
Flash-8 8 MHz 4 No No
Super64/10} 10 MHz 5 Yes Yes
rics torial siowewzo| commie | 10 | “vos
‘
n on the ‘Millions of Instructions per Second. The Super64/20
1 beats even a 25 MHz 386SX (8 MIPS).